Skip to content

Commit

Permalink
Fix: The Paradox Quest
Browse files Browse the repository at this point in the history
For correct operation, you need to add tile id 599 to the map and in the positions { x = 32477, y = 31905, z = 7 } and { x = 32476, y = 31906, z = 7 }.
  • Loading branch information
htc16 committed Jun 27, 2024
1 parent d3ddea0 commit 2e9fe27
Show file tree
Hide file tree
Showing 6 changed files with 155 additions and 65 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
local teleportTileBack = MoveEvent()

function teleportTileBack.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end

-- UIDs específicos do tile
local specificUIDs = {25034,25035,25036,25037}

-- Posições específicas
local specificPositions = {
{x = 32486, y = 31927, z = 7},
{x = 32487, y = 31927, z = 7},
{x = 32486, y = 31928, z = 7},
{x = 32487, y = 31928, z = 7},
}

-- Posição de teletransporte
local teleportPosition = {x = 32566, y = 31957, z = 1}

-- Verifica se a posição, o UID e o itemID coincidem
for _, pos in ipairs(specificPositions) do
if position.x == pos.x and position.y == pos.y and position.z == pos.z and item:getId() == 599 and table.contains(specificUIDs, item.uid) then
player:teleportTo(teleportPosition)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
break
end
end

return true
end

-- Registra o evento para os UIDs específicos
teleportTileBack:uid(25034,25035,25036,25037)
teleportTileBack:register()

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
local positions = {
{ x = 32563, y = 31957, z = 1 },
{ x = 32565, y = 31957, z = 1 },
{ x = 32567, y = 31957, z = 1 },
{ x = 32569, y = 31957, z = 1 },
{ x = 32563, y = 31957, z = 1 },
{ x = 32565, y = 31957, z = 1 },
{ x = 32567, y = 31957, z = 1 },
{ x = 32569, y = 31957, z = 1 },
}

local sacrificeSkulls = MoveEvent()

function sacrificeSkulls.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end
local player = creature:getPlayer()
if not player then
return true
end

for i = 4, #positions do
-- Check if have skulls in all positions
local tile = Tile(positions[i]):getItemById(3114)
if tile then
-- Message, only send in the first acess of the paradox tower
if player:getStorageValue(FirstParadoxAcess) < 1 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "One of the toxic salt seas in Krailos carries fresh and clean water again. The ogres' water supply is ensured for now")
player:setStorageValue(FirstParadoxAcess, 1)
end
-- Remove skulls
for skulls = 1, #positions do
local skull = Tile(positions[skulls]):getItemById(3114)
if skull then
-- Create poison fields from the positions
Game.createItem(105, 1, Position(positions[skulls]))
-- Remove skulls from the positions
skull:remove(1)
end
end
player:teleportTo({ x = 32479, y = 31923, z = 7 })
end
end
return true
-- Verifica se há crânios em todas as posições
for i = 1, #positions do
local tile = Tile(positions[i])
if not tile or not tile:getItemById(3114) then
return true -- Se alguma posição não tiver um crânio, sai da função
end
end

-- Se todos os crânios estiverem presentes, executa as ações
if player:getStorageValue(FirstParadoxAcess) < 1 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "One of the toxic salt seas in Krailos carries fresh and clean water again. The ogres' water supply is ensured for now")
player:setStorageValue(FirstParadoxAcess, 1)
end

for i = 1, #positions do
local skull = Tile(positions[i]):getItemById(3114)
if skull then
Game.createItem(105, 1, positions[i])
skull:remove(1)
end
end

player:teleportTo({ x = 32479, y = 31923, z = 7 })
return true
end

sacrificeSkulls:uid(25012)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
local teleportTile = MoveEvent()

function teleportTile.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end

-- UIDs específicos do tile
local specificUIDs = {25031,25032}

-- Posições específicas
local specificPositions = {
{x = 32477, y = 31905, z = 7},
{x = 32476, y = 31906, z = 7}
}

-- Posição de teletransporte
local teleportPosition = {x = 32478, y = 31908, z = 7}

-- Verifica se a posição, o UID e o itemID coincidem
for _, pos in ipairs(specificPositions) do
if position.x == pos.x and position.y == pos.y and position.z == pos.z and item:getId() == 599 and table.contains(specificUIDs, item.uid) then
player:teleportTo(teleportPosition)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
break
end
end

return true
end

-- Registra o evento para os UIDs específicos
teleportTile:uid(25031,25032)
teleportTile:register()
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
local trap_in_the_tree = MoveEvent()

local trapPositions = {
{x = 32497, y = 31889, z = 07},
{x = 32499, y = 31890, z = 07},
{x = 32497, y = 31890, z = 07},
{x = 32498, y = 31890, z = 07},
{x = 32496, y = 31890, z = 07},
{x = 32494, y = 31888, z = 07},
{x = 32502, y = 31890, z = 07}
}

function trap_in_the_tree.onStepIn(creature, item, toPosition, fromPosition)
if creature:isPlayer() and Tile({x = 32502, y = 31890, z = 07}):getThingCount() == 2 then
doTargetCombatHealth(0, creature, COMBAT_EARTHDAMAGE, -200, -200)
for _, pos in ipairs(trapPositions) do
Game.createItem(2121, 1, pos)
end
end
end

trap_in_the_tree:uid(25011)
trap_in_the_tree:register()
30 changes: 28 additions & 2 deletions data-otservbr-global/startup/tables/tile.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1099,8 +1099,8 @@ TileUnique = {
},
-- The paradox tower quest
[25011] = {
itemId = 354,
itemPos = { x = 32497, y = 31889, z = 7 },
itemId = 353,
itemPos = { x = 32497, y = 31888, z = 7 },
},
[25012] = {
itemId = 10145,
Expand Down Expand Up @@ -1191,6 +1191,32 @@ TileUnique = {
itemId = 12728,
itemPos = { x = 32059, y = 32135, z = 9 },
},

-- The Paradox Tower Quest
[25031] = {
itemId = 599,
itemPos = { x = 32477, y = 31905, z = 7 },
},
[25032] = {
itemId = 599,
itemPos = { x = 32476, y = 31906, z = 7 },
},
[25034] = {
itemId = 599,
itemPos = { x = 32486, y = 31927, z = 7 },
},
[25035] = {
itemId = 599,
itemPos = { x = 32487, y = 31927, z = 7 },
},
[25036] = {
itemId = 599,
itemPos = { x = 32486, y = 31928, z = 7 },
},
[25037] = {
itemId = 599,
itemPos = { x = 32487, y = 31928, z = 7 },
},
-- Remove/create item on stepIn
-- Reserved uniques range from 29001/30000

Expand Down

0 comments on commit 2e9fe27

Please sign in to comment.