diff --git a/800OTClient/data/things/772/Tibia.dat b/800OTClient/data/things/772/Tibia.dat index 5b6f2ce..9096745 100644 Binary files a/800OTClient/data/things/772/Tibia.dat and b/800OTClient/data/things/772/Tibia.dat differ diff --git a/800OTClient/data/things/772/Tibia.spr b/800OTClient/data/things/772/Tibia.spr index 4aeb632..a8825fe 100644 Binary files a/800OTClient/data/things/772/Tibia.spr and b/800OTClient/data/things/772/Tibia.spr differ diff --git a/800OTClient/modules/game_outfit/outfit.lua b/800OTClient/modules/game_outfit/outfit.lua index 32d2ce5..0827085 100644 --- a/800OTClient/modules/game_outfit/outfit.lua +++ b/800OTClient/modules/game_outfit/outfit.lua @@ -38,8 +38,8 @@ end function setupTables() configOptions = { - {id = "addon1", text = "Addon 1", checked = false, enabled = g_game.getClientVersion() >= 780}, - {id = "addon2", text = "Addon 2", checked = false, enabled = g_game.getClientVersion() >= 780}, + {id = "addon1", text = "Addon 1", checked = false, enabled = g_game.getFeature(GamePlayerAddons)}, + {id = "addon2", text = "Addon 2", checked = false, enabled = g_game.getFeature(GamePlayerAddons)}, {id = "mount", text = "Mount", checked = false, enabled = g_game.getFeature(GamePlayerMounts)}, {id = "wings", text = "Wings", checked = false, enabled = g_game.getFeature(GameWingsAndAura)}, {id = "aura", text = "Aura", checked = false, enabled = g_game.getFeature(GameWingsAndAura)}, diff --git a/800OTClient/otclientv8.log b/800OTClient/otclientv8.log index 3e2a6b6..8a09357 100644 --- a/800OTClient/otclientv8.log +++ b/800OTClient/otclientv8.log @@ -5345,3 +5345,58 @@ stack traceback: [C]: in function '__index' /modules/game_outfit/outfit.lua:355: in function 'onElementSelect' /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function +Exiting application.. +GPU Radeon RX 580 Series (ATI Technologies Inc.) +OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6 +[Atlas] Texture size is: 4096x4096 (max: 16384x16384) +Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/' +== application started at Apr 18 2022 16:06:08 +OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86 +Connecting to: 127.0.0.1:7171 +Login to 127.0.0.1:7172 +ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value) +stack traceback: + [C]: in function '__index' + /modules/game_outfit/outfit.lua:836: in function +ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value) +stack traceback: + [C]: in function '__index' + /modules/game_outfit/outfit.lua:836: in function +Exiting application.. +GPU Radeon RX 580 Series (ATI Technologies Inc.) +OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6 +[Atlas] Texture size is: 4096x4096 (max: 16384x16384) +Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/' +== application started at Apr 18 2022 16:10:05 +OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86 +Connecting to: 127.0.0.1:7171 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +ERROR: lua function callback failed: /modules/game_battle/battle.lua:357: attempt to compare nil with number +stack traceback: + [C]: in function '__lt' + /modules/game_battle/battle.lua:357: in function + [C]: in function 'sort' + /modules/game_battle/battle.lua:355: in function 'sortCreatures' + /modules/game_battle/battle.lua:263: in function 'checkCreatures' + /modules/game_battle/battle.lua:224: in function +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Exiting application.. +GPU Radeon RX 580 Series (ATI Technologies Inc.) +OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6 +[Atlas] Texture size is: 4096x4096 (max: 16384x16384) +Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/' +== application started at Apr 18 2022 18:15:15 +OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86 +Connecting to: 127.0.0.1:7171 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 +Login to 127.0.0.1:7172 diff --git a/New Text Document.txt b/New Text Document.txt index ce58b84..2a1a259 100644 --- a/New Text Document.txt +++ b/New Text Document.txt @@ -1 +1 @@ -next: 17745 \ No newline at end of file +next: 17751 \ No newline at end of file diff --git a/data/XML/quests.xml b/data/XML/quests.xml index 2a550d9..21b3a50 100644 --- a/data/XML/quests.xml +++ b/data/XML/quests.xml @@ -577,12 +577,11 @@ - + - - + diff --git a/data/actions/scripts/inquisition/holyWater.lua b/data/actions/scripts/inquisition/holyWater.lua index 70887a4..7fe635a 100644 --- a/data/actions/scripts/inquisition/holyWater.lua +++ b/data/actions/scripts/inquisition/holyWater.lua @@ -1,8 +1,8 @@ local doorPosition = Position(32260, 32791, 7) -local shadowNexusPosition = Position(33115, 31702, 12) +local shadowNexusPosition = Position(33117, 31708, 12) local effectPositions = { - Position(33113, 31702, 12), - Position(33116, 31702, 12) + Position(33116, 31708, 12), + Position(33118, 31708, 12) } local function revertItem(position, itemId, transformId) @@ -58,13 +58,13 @@ function onUse(player, item, fromPosition, target, toPosition, isHotkey) end -- Shadow Nexus - if isInArray({8753, 8755, 8757}, target.itemid) then + if isInArray({7925, 7927, 7929}, target.itemid) then target:transform(target.itemid + 1) target:decay() nexusMessage(player, player:getName() .. ' damaged the shadow nexus! You can\'t damage it while it\'s burning.') - shadowNexusPosition:sendMagicEffect(CONST_ME_HOLYAREA) + shadowNexusPosition:sendMagicEffect(CONST_ME_ENERGYHIT) - elseif target.itemid == 8759 then + elseif target.itemid == 7931 then if player:getStorageValue(12160) < 22 then -- The Inquisition Questlog- 'Mission 7: The Shadow Nexus' player:setStorageValue(12167, 2) @@ -72,7 +72,7 @@ function onUse(player, item, fromPosition, target, toPosition, isHotkey) end for i = 1, #effectPositions do - effectPositions[i]:sendMagicEffect(CONST_ME_HOLYAREA) + effectPositions[i]:sendMagicEffect(CONST_ME_ENERGYHIT) end nexusMessage(player, player:getName() .. ' destroyed the shadow nexus! In 20 seconds it will return to its original state.') diff --git a/data/creaturescripts/creaturescripts.xml b/data/creaturescripts/creaturescripts.xml index ea042fc..ded3b3d 100644 --- a/data/creaturescripts/creaturescripts.xml +++ b/data/creaturescripts/creaturescripts.xml @@ -12,4 +12,5 @@ + diff --git a/data/creaturescripts/scripts/inquisitionQuestBosses.lua b/data/creaturescripts/scripts/inquisitionQuestBosses.lua new file mode 100644 index 0000000..a8b6666 --- /dev/null +++ b/data/creaturescripts/scripts/inquisitionQuestBosses.lua @@ -0,0 +1,39 @@ +local bosses = { + ['ushuriel'] = 200, + ['zugurosh'] = 201, + ['madareth'] = 202, + ['latrivan'] = 203, + ['golgordan'] = 203, + ['annihilon'] = 204, + ['hellgorak'] = 205 +} + +function onKill(player, target) + local targetMonster = target:getMonster() + if not targetMonster then + return true + end + + local targetName = targetMonster:getName():lower() + local bossStorage = bosses[targetName] + if not bossStorage then + return true + end + + local newValue = 2 + if targetName == 'latrivan' or targetName == 'golgordan' then + local currentValue = 0 + if Game.getStorageValue(bossStorage) then + currentValue = Game.getStorageValue(bossStorage) + end + + newValue = math.max(0, currentValue) + 1 + end + Game.setStorageValue(bossStorage, newValue) + + if newValue >= 2 then + player:say('You now have 3 minutes to exit this room through the teleporter. It will bring you to the next room.', TALKTYPE_MONSTER_SAY) + addEvent(Game.setStorageValue, 3 * 60 * 1000, bossStorage, 0) + end + return true +end \ No newline at end of file diff --git a/data/creaturescripts/scripts/login.lua b/data/creaturescripts/scripts/login.lua index 55d71e6..7f26151 100644 --- a/data/creaturescripts/scripts/login.lua +++ b/data/creaturescripts/scripts/login.lua @@ -322,6 +322,7 @@ function onLogin(player) player:registerEvent("FirstItems") player:registerEvent("RegenerateStamina") player:registerEvent("InquisitionUngreez") + player:registerEvent("InquisitionBosses") return true end diff --git a/data/items800/items.srv b/data/items800/items.srv index c4ef687..e2338ed 100644 --- a/data/items800/items.srv +++ b/data/items800/items.srv @@ -33814,12 +33814,88 @@ Name = "the ring of the count" Flags = {Take} Attributes = {Weight=75,SlotType=RING} +TypeID = 7925 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay} +Attributes = {Brightness=3,LightColor=5} + +TypeID = 7926 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7927,TotalExpireTime=30} + +TypeID = 7927 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7925,TotalExpireTime=20} + +TypeID = 7928 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7929,TotalExpireTime=30} + +TypeID = 7929 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7925,TotalExpireTime=20} + +TypeID = 7930 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7931,TotalExpireTime=30} + +TypeID = 7931 +Name = "the shadow nexus" +Flags = {Unpass,Unmove,Unthrow,Unlay,Expire} +Attributes = {Brightness=3,LightColor=5,ExpireTarget=7925,TotalExpireTime=20} + TypeID = 8023 Name = "a royal crossbow" Description = "It is a bit heavy due to the iron mounting, but very precise" Flags = {Take,Distance} Attributes = {Weight=12000,SlotType=TWOHANDED,Range=6,AmmoType=BOLT,ExtraHitChance=3,Attack=5} +TypeID = 8026 +Name = "a warsinger bow" +Flags = {Take,Distance} +Attributes = {Weight=4500,SlotType=TWOHANDED,Range=7,AmmoType=ARROW,ExtraHitChance=5,Attack=3} + +TypeID = 8053 +Name = "a fireborn giant armor" +Flags = {Take,Armor} +Attributes = {Weight=12000,SlotType=BODY,ArmorValue=15,AbsorbFire=5,SwordBoost=2} + +TypeID = 8060 +Name = "a master archer's armor" +Flags = {Take,Armor} +Attributes = {Weight=6900,SlotType=BODY,ArmorValue=15,DistanceBoost=3} + +TypeID = 8062 +Name = "a robe of the underworld" +Flags = {Take,Armor} +Attributes = {Weight=3100,SlotType=BODY,ArmorValue=12,AbsorbPhysical=12} + +TypeID = 8090 +Name = "a spellbook of dark mysteries" +Description = "It shows your spells and can also shield against attacks when worn" +Flags = {Take,Shield} +Attributes = {Weight=2850,Defense=16,MagicBoost=3} + +TypeID = 8096 +Name = "a hellforged axe" +Flags = {MultiUse,Take,Weapon} +Attributes = {Weight=8800,WeaponType=AXE,Attack=51,Defense=28} + +TypeID = 8100 +Name = "an obsidian truncheon" +Flags = {MultiUse,Take,Weapon} +Attributes = {Weight=6500,WeaponType=CLUB,Attack=50,Defense=30} + +TypeID = 8102 +Name = "an emerald sword" +Flags = {MultiUse,Take,Weapon} +Attributes = {Weight=4100,WeaponType=SWORD,Attack=49,Defense=33} + TypeID = 8109 Name = "remains of a vampire lord" Flags = {Container,Unmove,Corpse,Expire} diff --git a/data/monster/800/annihilon.xml b/data/monster/800/annihilon.xml new file mode 100644 index 0000000..638dde9 --- /dev/null +++ b/data/monster/800/annihilon.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/golgordan.xml b/data/monster/800/golgordan.xml new file mode 100644 index 0000000..477cbd9 --- /dev/null +++ b/data/monster/800/golgordan.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/hellgorak.xml b/data/monster/800/hellgorak.xml new file mode 100644 index 0000000..4d94e87 --- /dev/null +++ b/data/monster/800/hellgorak.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/latrivan.xml b/data/monster/800/latrivan.xml new file mode 100644 index 0000000..977887b --- /dev/null +++ b/data/monster/800/latrivan.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/madareth.xml b/data/monster/800/madareth.xml new file mode 100644 index 0000000..23f7b4d --- /dev/null +++ b/data/monster/800/madareth.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/ushuriel.xml b/data/monster/800/ushuriel.xml new file mode 100644 index 0000000..70c541c --- /dev/null +++ b/data/monster/800/ushuriel.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/800/zugurosh.xml b/data/monster/800/zugurosh.xml new file mode 100644 index 0000000..65345b5 --- /dev/null +++ b/data/monster/800/zugurosh.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/monster/monsters.xml b/data/monster/monsters.xml index 3423962..1c99c1e 100644 --- a/data/monster/monsters.xml +++ b/data/monster/monsters.xml @@ -248,4 +248,11 @@ + + + + + + + \ No newline at end of file diff --git a/data/movements/movements.xml b/data/movements/movements.xml index d3b494b..72aef2f 100644 --- a/data/movements/movements.xml +++ b/data/movements/movements.xml @@ -395,6 +395,20 @@ + + + + + + + + + + + + + + @@ -641,6 +655,14 @@ + + + + + + + + diff --git a/data/movements/scripts/inquisition/arcanum_1.lua b/data/movements/scripts/inquisition/arcanum_1.lua new file mode 100644 index 0000000..1caeb1b --- /dev/null +++ b/data/movements/scripts/inquisition/arcanum_1.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33091, y = 31781, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33091, y = 31781, z = 15}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33091, y = 31781, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33091, y = 31781, z = 15}, 11) +end diff --git a/data/movements/scripts/inquisition/arcanum_1_back.lua b/data/movements/scripts/inquisition/arcanum_1_back.lua new file mode 100644 index 0000000..bda8a28 --- /dev/null +++ b/data/movements/scripts/inquisition/arcanum_1_back.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33061, y = 31752, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33061, y = 31752, z = 15}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33061, y = 31752, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33061, y = 31752, z = 15}, 11) +end diff --git a/data/movements/scripts/inquisition/arcanum_2.lua b/data/movements/scripts/inquisition/arcanum_2.lua new file mode 100644 index 0000000..6a31296 --- /dev/null +++ b/data/movements/scripts/inquisition/arcanum_2.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33149, y = 31782, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33149, y = 31782, z = 15}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33149, y = 31782, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33149, y = 31782, z = 15}, 11) +end diff --git a/data/movements/scripts/inquisition/arcanum_2_back.lua b/data/movements/scripts/inquisition/arcanum_2_back.lua new file mode 100644 index 0000000..b0f3293 --- /dev/null +++ b/data/movements/scripts/inquisition/arcanum_2_back.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33090, y = 31759, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33090, y = 31759, z = 15}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33090, y = 31759, z = 15}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33090, y = 31759, z = 15}, 11) +end diff --git a/data/movements/scripts/inquisition/arcanum_3.lua b/data/movements/scripts/inquisition/arcanum_3.lua new file mode 100644 index 0000000..b362fc3 --- /dev/null +++ b/data/movements/scripts/inquisition/arcanum_3.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33192, y = 31686, z = 14}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33192, y = 31686, z = 14}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33192, y = 31686, z = 14}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33192, y = 31686, z = 14}, 11) +end diff --git a/data/movements/scripts/inquisition/entrance.lua b/data/movements/scripts/inquisition/entrance.lua new file mode 100644 index 0000000..d8d18af --- /dev/null +++ b/data/movements/scripts/inquisition/entrance.lua @@ -0,0 +1,38 @@ +local throneStorages = { + 17679, + 17680, + 17681, + 17682, + 17683, + 17684, + 17685 +} + +local function hasTouchedOneThrone(player) + for i = 1, #throneStorages do + if player:getStorageValue(throneStorages[i]) == 1 then + return true + end + end + return false +end + +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + if not hasTouchedOneThrone(player) or player:getLevel() < 100 or player:getStorageValue(12160) < 20 then + player:teleportTo(fromPosition) + position:sendMagicEffect(CONST_ME_TELEPORT) + fromPosition:sendMagicEffect(CONST_ME_TELEPORT) + return true + end + + local destination = Position(33168, 31683, 15) + player:teleportTo(destination) + position:sendMagicEffect(CONST_ME_TELEPORT) + destination:sendMagicEffect(CONST_ME_TELEPORT) + return true +end \ No newline at end of file diff --git a/data/movements/scripts/inquisition/entrance_back.lua b/data/movements/scripts/inquisition/entrance_back.lua new file mode 100644 index 0000000..b362fc3 --- /dev/null +++ b/data/movements/scripts/inquisition/entrance_back.lua @@ -0,0 +1,16 @@ +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + doRelocate(item:getPosition(),{x = 33192, y = 31686, z = 14}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33192, y = 31686, z = 14}, 11) +end + +function onAddItem(item, tileitem, position) + doRelocate(item:getPosition(),{x = 33192, y = 31686, z = 14}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33192, y = 31686, z = 14}, 11) +end diff --git a/data/movements/scripts/inquisition/teleportMain.lua b/data/movements/scripts/inquisition/teleportMain.lua new file mode 100644 index 0000000..69ef3bd --- /dev/null +++ b/data/movements/scripts/inquisition/teleportMain.lua @@ -0,0 +1,68 @@ +local teleports = { + [2150] = {text = 'Entering Ushuriel\'s ward.', newPos = Position(33158, 31728, 11), storage = 0, alwaysSetStorage = true}, -- to ushuriel ward + [2151] = {text = 'Entering the Crystal Caves.', bossStorage = 200, newPos = Position(33069, 31782, 13), storage = 1}, -- from ushuriel ward + [2152] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from crystal caves + [2153] = {text = 'Entering the Crystal Caves.', newPos = Position(33069, 31782, 13), storage = 1}, -- to crystal caves + [2154] = {text = 'Entering the Sunken Caves.', newPos = Position(33169, 31755, 13)}, -- to sunken caves + [2155] = {text = 'Entering the Mirror Maze of Madness.', newPos = Position(33065, 31772, 10)}, -- from sunken caves + [2156] = {text = 'Entering Zugurosh\'s ward.', newPos = Position(33124, 31692, 11)}, -- to zugurosh ward + [2157] = {text = 'Entering the Blood Halls.', bossStorage = 201, newPos = Position(33372, 31613, 14), storage = 2}, -- from zugurosh ward + [2158] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from blood halls + [2159] = {text = 'Entering the Blood Halls.', newPos = Position(33372, 31613, 14), storage = 2}, -- to blood halls + [2160] = {text = 'Entering the Foundry.', newPos = Position(33356, 31589, 11)}, -- to foundry + [2161] = {text = 'Entering Madareth\'s ward.', newPos = Position(33197, 31767, 11)}, -- to madareth ward + [2162] = {text = 'Entering the Vats.', bossStorage = 202, newPos = Position(33153, 31782, 12), storage = 3}, -- from madareth ward + [2163] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from vats + [2164] = {text = 'Entering the Vats.', newPos = Position(33153, 31782, 12), storage = 3}, -- to vats + [2165] = {text = 'Entering the Battlefield.', newPos = Position(33250, 31632, 13)}, -- to battlefield + [2166] = {text = 'Entering the Vats.', newPos = Position(33233, 31758, 12)}, -- from battlefield + [2167] = {text = 'Entering the Demon Forge.', newPos = Position(33232, 31733, 11)}, -- to brothers ward + [2168] = {text = 'Entering the Arcanum.', bossStorage = 203, newPos = Position(33038, 31753, 15), storage = 4}, -- from demon forge + [2169] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from arcanum + [2170] = {text = 'Entering the Arcanum.', newPos = Position(33038, 31753, 15), storage = 4}, -- to arcanum + [2171] = {text = 'Entering the Soul Wells.', newPos = Position(33093, 31575, 11)}, -- to soul wells + [2172] = {text = 'Entering the Arcanum.', newPos = Position(33186, 31759, 15)}, -- from soul wells + [2173] = {text = 'Entering the Annihilon\'s ward.', newPos = Position(33197, 31703, 11)}, -- to annihilon ward + [2174] = {text = 'Entering the Hive.', bossStorage = 204, newPos = Position(33199, 31686, 12), storage = 5}, -- from annihilon ward + [2175] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from hive + [2176] = {text = 'Entering the Hive.', newPos = Position(33199, 31686, 12), storage = 5}, -- to hive + [2177] = {text = 'Entering the Hellgorak\'s ward.', newPos = Position(33104, 31734, 11)}, -- to hellgorak ward + [2178] = {text = 'Entering the Shadow Nexus. Abandon all Hope.', bossStorage = 205, newPos = Position(33110, 31682, 12), storage = 6}, -- from hellgorak ward + [2179] = {text = 'Escaping back to the Retreat.', newPos = Position(33165, 31709, 14)}, -- from shadow nexus + [2180] = {text = 'Entering the Blood Halls.', newPos = Position(33357, 31589, 12)} -- from foundry to blood halls +} + +function onStepIn(creature, item, position, fromPosition) + local player = creature:getPlayer() + if not player then + return true + end + + local teleport = teleports[item:getMovementId()] + if teleport.alwaysSetStorage and player:getStorageValue(12176) < teleport.storage then + player:setStorageValue(12176, teleport.storage) + end + + if teleport.bossStorage then + if Game.getStorageValue(teleport.bossStorage) and Game.getStorageValue(teleport.bossStorage) >= 2 then + if player:getStorageValue(12176) < teleport.storage then + player:setStorageValue(12176, teleport.storage) + end + else + player:teleportTo(Position(33165, 31709, 14)) + player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) + player:say('Escaping back to the Retreat.', TALKTYPE_MONSTER_SAY) + return true + end + elseif teleport.storage and player:getStorageValue(12176) < teleport.storage then + player:teleportTo(fromPosition) + player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) + player:say('You don\'t have enough energy to enter this portal', TALKTYPE_MONSTER_SAY) + return true + end + + player:teleportTo(teleport.newPos) + player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) + player:say(teleport.text, TALKTYPE_MONSTER_SAY) + return true +end \ No newline at end of file diff --git a/data/movements/scripts/misc/floorchange.lua b/data/movements/scripts/misc/floorchange.lua index 236712b..c3a7848 100644 --- a/data/movements/scripts/misc/floorchange.lua +++ b/data/movements/scripts/misc/floorchange.lua @@ -77,6 +77,10 @@ local list = { [5691] = {x = 1, y = 0, z = 1}, [5731] = {x = 0, y = 0, z = 1}, [5763] = {x = 0, y = 0, z = 1}, + [6127] = {x = 0, y = -1, z = 1}, + [6128] = {x = 0, y = 1, z = 1}, + [6129] = {x = 0, y = -1, z = 1}, + [6130] = {x = 0, y = 1, z = 1}, [6172] = {x = 0, y = 0, z = 1}, [6173] = {x = 0, y = 0, z = 1}, } diff --git a/data/npc/henricus.npc b/data/npc/henricus.npc index c74691a..cdedf71 100644 --- a/data/npc/henricus.npc +++ b/data/npc/henricus.npc @@ -104,13 +104,10 @@ topic=4 -> "I expected better from you." "mission",QuestValue(12160)=21 -> "Your current mission is to destroy the shadow nexus in the Demon Forge. Are you done with that mission?", topic=5 "mission",QuestValue(12160)=22 -> * "yes",QuestValue(12160)=22,topic=5 -> "Incredible! You're a true defender of faith! I grant you the title of a High Inquisitor for your noble deeds. From now on you can obtain the blessing of the inquisition which makes the pilgrimage of ashes obsolete ...", - "The blessing of the inquisition will bestow upon you all available blessings. Also, don't forget to ask me about your outfit to receive the final addon as demon hunter.",SetQuestValue(12167,3),SetQuestValue(12160,23) + "The blessing of the inquisition will bestow upon you all available blessings. Also, here is the final addon for your demon hunter outfit.",SetQuestValue(12167,3),SetQuestValue(12160,23),SetQuestValue(12160,24),SetQuestValue(12167,4),AddOutfitAddon(288,2),AddOutfitAddon(289,2),EffectOpp(13) "yes",topic=5 -> "You haven't done your mission yet." topic=5 -> "Come back when you have destroyed the shadow nexus." -"mission",QuestValue(12160)=23 -> "Here is the final addon for your demon hunter outfit. Congratulations!",SetQuestValue(12160,24),SetQuestValue(12167,4),AddOutfitAddon(288,2),AddOutfitAddon(289,2),EffectOpp(13) -"outfit",QuestValue(12160)=23 -> * - "mission",QuestValue(12160)=24 -> "Currently we have no missions for you brave fellow." "bless",QuestValue(12160)=24 -> Price=60000, "Do you want to receive all blessings for %P gold?", Topic=6 diff --git a/data/world800/map-spawn.xml b/data/world800/map-spawn.xml index a11e860..fd4aaaa 100644 --- a/data/world800/map-spawn.xml +++ b/data/world800/map-spawn.xml @@ -30308,6 +30308,9 @@ + + + @@ -30481,6 +30484,11 @@ + + + + + @@ -30549,6 +30557,7 @@ + @@ -30565,11 +30574,7 @@ - - - - - + @@ -30578,7 +30583,6 @@ - @@ -30603,6 +30607,9 @@ + + + @@ -30648,7 +30655,6 @@ - @@ -35843,6 +35849,10 @@ + + + + @@ -36127,17 +36137,13 @@ + + + - - - - - - - @@ -39817,33 +39823,28 @@ - - + + - - - - + + + + - - - - + + - - - - + + + + + + - - - - - - + @@ -39853,9 +39854,11 @@ - - + + + + @@ -39864,8 +39867,13 @@ - - + + + + + + + @@ -39877,11 +39885,6 @@ - - - - - @@ -39889,23 +39892,20 @@ - - - - - - - - - - - + + + + + + + - - + + + @@ -39915,8 +39915,9 @@ - - + + + @@ -46898,12 +46899,10 @@ - - @@ -46916,7 +46915,6 @@ - diff --git a/data/world800/map.otbm b/data/world800/map.otbm index 7bdc06c..4e17e37 100644 Binary files a/data/world800/map.otbm and b/data/world800/map.otbm differ