-- == Blood Castle Event por Killua - Xtibia.com == --
bloodconfig = {
templo = {x = 150, y = 53, z = 7}, -- templo
posGuarda = {x = 526, y = 69, z = 7}, -- Onde o guarda do portão vai nascer
premios = {{6527, 10}, {2160, 20}}, -- Premios que o vencedor vai ganhar {id, quantidade}
positionTP = {x = 154, y = 43, z = 5}, -- Onde o tp será criado
positionEvento = {x = 526, y = 105, z = 7}, -- Para onde o tp vai levar
tempoTP = 2, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
tempoAberto = 1, -- Tempo que o tp fica aberto. Em minutos
minPlayers = 1, -- Número mínimo de players que devem entrar para que o evento aconteça
tempoMaximo = 40, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
playersStorage = 54910, -- Não mude
posPedras = {{x = 524, y = 101, z = 7, stackpos=1}, {x = 525, y = 101, z = 7, stackpos=1}, {x = 526, y = 101, z = 7, stackpos=1}, {x = 527, y = 101, z = 7, stackpos=1}, {x = 528, y = 101, z = 7, stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento
idDasParedes = 3362, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id)
estatua = {x = 526, y = 52, z = 7}, -- Posicao onde o arcanjo vai ser criado
tempoSaida = 70, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
posParedes = {{x = 525, y = 68, z = 7, stackpos=1}, {x = 526, y = 68, z = 7, stackpos=1}, {x = 527, y = 68, z = 7, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda
fromPos = {x = 514, y = 42, z = 7}, -- Canto superior esquerdo da área do seu evento ---- Deve ser uma área quadrada ou retangular, de forma que todo o evento fique dentro dela.
toPos = {x = 538, y = 112, z = 7}, -- Canto inferior direito da área do seu evento
}
-- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] --
function removeTpb()
local t = getTileItemById(bloodconfig.positionTP, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF)
end
end
function removeStones()
for i = 1, #bloodconfig.posPedras do
local pedra = getTileItemById(bloodconfig.posPedras, 1304)
if pedra then
doRemoveItem(pedra.uid, 1)
end
end
end
function putStones()
for i = 1, #bloodconfig.posPedras do
local pedra = getTileItemById(bloodconfig.posPedras, 1304)
if not pedra then
doCreateItem(1304, 1, pedra)
end
end
end
function createTeleportb()
local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP)
doItemSetAttribute(tip, "aid", 4726)
end
function removeTpa()
local t = getTileItemById(bloodconfig.estatua, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF)
end
end
function getPlayersInBlood()
local playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage)
return playersInBlood < 0 and 0 or playersInBlood
end
function removePlayers()
for _, pid in pairs(getPlayersOnline()) do
if isInArea(getThingPos(pid), bloodconfig.fromPos, bloodconfig.toPos) then
doTeleportThing(pid, bloodconfig.templo, false)
doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce foi removido do Blood Castle. Possiveis causas: o evento nao atingiu o numero minimo de players; Voce permaneceu no evento por mais de " .. bloodconfig.tempoMaximo .. " minutos.")
end
end
end
function checkBlood()
if getPlayersInBlood() >= bloodconfig.minPlayers then
removeStones()
doBroadcastMessage("[blood Castle] O Evento comecou e o teleporte para ele foi fechado. Boa sorte a todos!")
if not isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
doCreateMonster("Guarda do Portao", bloodconfig.posGuarda)
end
addEvent(removePlayers, bloodconfig.tempoMaximo*60*1000)
else
removePlayers()
setGlobalStorageValue(bloodconfig.playersStorage, 0)
doBroadcastMessage("[blood Castle] O evento nao atingiu o numero minimo de participantes e foi cancelado.")
if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
end
if isMonster(getTopCreature(bloodconfig.estatua).uid) then
doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
end
end
end
function putWalls()
for i = 1, #bloodconfig.posParedes do
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParedes)
end
end
function removeWalls()
for i = 1, #bloodconfig.posParedes do
local wall = getTileItemById(bloodconfig.posParedes, bloodconfig.idDasParedes)
if wall then
doRemoveItem(wall.uid, 1)
end
end
end
function createAngel()
if not isMonster(getTopCreature(bloodconfig.estatua).uid) then
doCreateMonster("Arcanjo", bloodconfig.estatua)
doBroadcastMessage("[blood Castle] A estatua do arcanjo apareceu!")
end
end
function Guarantee()
if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
putWalls()
doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then
putStones()
putWalls()
doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
end
end