Ir para conteúdo

[Blood Castle] Evento Otimizado![12/04/14]


Killua

Posts Recomendados

  • 3 weeks later...

então está tudo certinho tirando que coloquei o mapa aqui configurei certinho igual manda na LIB, mais quando mata o Guarda não está sumindo a parede que fica atras dele já tentei trocar de parede etc...

e quando mata o guarda aparece esse erro aqui abaixo:

 

[11/04/2014 02:18:03] [Error - CreatureScript Interface]
[11/04/2014 02:18:03] data/creaturescripts/scripts/BloodCreatureGuarda.lua:onDeath
[11/04/2014 02:18:03] Description:
[11/04/2014 02:18:03] (luaDoRemoveItem) Item not found

[11/04/2014 02:18:03] [Error - CreatureScript Interface]
[11/04/2014 02:18:03] data/creaturescripts/scripts/BloodCreatureGuarda.lua:onDeath
[11/04/2014 02:18:03] Description:
[11/04/2014 02:18:03] (luaDoRemoveItem) Item not found

[11/04/2014 02:18:03] [Error - CreatureScript Interface]
[11/04/2014 02:18:03] data/creaturescripts/scripts/BloodCreatureGuarda.lua:onDeath
[11/04/2014 02:18:03] Description:
[11/04/2014 02:18:03] (luaDoRemoveItem) Item not found

 

 

BloodCreatureGuarda:

 

-- == Blood Castle Event por Killua, antigo amoeba13 - Xtibia == --

function onDeath(cid, corpse, mostDamageKiller)
local artigo = getPlayerSex(mostDamageKiller[1]) == 0 and "A jogadora" or "O jogador"
if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower("Guarda do Portao") then
doRemoveItem(getTileItemById(bloodconfig.posParede1, bloodconfig.idDasParedes).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posParede2, bloodconfig.idDasParedes).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posParede3, bloodconfig.idDasParedes).uid, 1)
addEvent(criarEstatua, 2*60*1000)
doBroadcastMessage("[blood Castle] " .. artigo .. " " .. getPlayerName(mostDamageKiller[1]) .. " derrotou o Guarda do Portao! Prossigam para proxima sala e aguardem ate o arcanjo nascer!")
end
return true
end

 

 

BloodCastle (lib)

 

-- == Blood Castle Event por Killua, antigo amoeba13 - Xtibia == --

bloodconfig = {

templo = {x = 160, y = 54, z = 7}, -- templo

posGuarda = {x = 1048, y = 1149, z = 7}, -- Onde o guarda do portão vai nascer

premios = {{2160, 1}, {2157, 10}, {2000, 1}}, -- Premios que o vencedor pode ganhar {id, quantidade}

positionTP = {x = 161, y = 50, z = 7}, -- Onde o tp será criado

positionEvento = {x = 1047, y = 1186, z = 7}, -- Para onde o tp vai levar

tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos

tempoAberto = 2, -- 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 = 10, -- Tempo máximo, em minutos, que alguem pode permanecer no evento

playersStorage = 54910, -- Não mude

posPedra1 = {x = 1046, y = 1181, z = 7, stackpos=1}, -- Posicao das pedras
posPedra2 = {x = 1047, y = 1181, z = 7, stackpos=1},
posPedra3 = {x = 1048, y = 1181, z = 7, stackpos=1},
posPedra4 = {x = 1049, y = 1181, z = 7, stackpos=1},
posPedra5 = {x = 1050, y = 1181, z = 7, stackpos=1},

idDasParedes = 9486, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id)

estatua = {x = 1048, y = 1132, z = 7}, -- Posicao onde o arcanjo vai ser criado

tempoSaida = 10, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos

posParede1 = {x = 1047, y = 1148, z = 7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer
posParede2 = {x = 1048, y = 1148, z = 7, stackpos=1},
posParede3 = {x = 1049, y = 1148, z = 7, stackpos=1},

fromPos = {x = 1032, y = 1126, 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 = 1065, y = 1190, z = 7}, -- Canto inferior direito da área do seu evento
}

-- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] --

function TirarTp()
local t = getTileItemById(bloodconfig.positionTP, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF)
end
end

function tirarPedras()
doRemoveItem(getTileItemById(bloodconfig.posPedra1, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra2, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra3, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra4, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra5, 1304).uid, 1)
end

function porPedras()
doCreateItem(1304, 1, bloodconfig.posPedra1)
doCreateItem(1304, 1, bloodconfig.posPedra2)
doCreateItem(1304, 1, bloodconfig.posPedra3)
doCreateItem(1304, 1, bloodconfig.posPedra4)
doCreateItem(1304, 1, bloodconfig.posPedra5)
end


function BotarTp()
local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP)
doItemSetAttribute(tip, "aid", 4726)
end

function TirarTpArc()
local t = getTileItemById(bloodconfig.estatua, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF)
end
end


function getPlayersInBlood()
playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage)
if playersInBlood < 0 then
playersInBlood = 0
end
return playersInBlood
end

function TirarPlayers()
for x = bloodconfig.fromPos.x, bloodconfig.toPos.x do
for y = bloodconfig.fromPos.y, bloodconfig.toPos.y do
for z = bloodconfig.fromPos.z, bloodconfig.toPos.z do
areaBlood = {x=x, y=y, z=z, stackpos = 253}
playersb = getThingFromPos(areaBlood)
if isPlayer(playersb.uid) then
doTeleportThing(playersb.uid, bloodconfig.templo, false)
doPlayerSendTextMessage(playersb.uid, 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
end
end

function checkBlood()
if getPlayersInBlood() >= bloodconfig.minPlayers then
tirarPedras()
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(TirarPlayers, bloodconfig.tempoMaximo*60*1000)
else
TirarPlayers()
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 porParedes()
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede1)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede2)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede3)
end

function criarEstatua()
if not isMonster(getTopCreature(bloodconfig.estatua).uid) then
doCreateMonster("Arcanjo", bloodconfig.estatua)
doBroadcastMessage("[blood Castle] A estatua do arcanjo apareceu!")
end
end

function Garantir()
if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
porPedras()
doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then
porPedras()
porParedes()
doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
end
end

 

 

só estou com esse problema =/ de não sair a parede atrás do guarda de resto está funcionando certinho...

 

RESOLVIDO...

Forma que resolvi o meu problema, coloquei atrás de onde nasce o guarda o item com o ID 9486, conforme na imagem abaixo:
9ituZKm.jpg

M5ayIQX.gif

Editado por TiagoBordin1988
Link para o comentário
Compartilhar em outros sites

Isso se deve ao fato de a variavel idDasParedes estar igual a 9486. Se deseja mudar a parede, basta alterar essa variavel.

Ainda hoje vou postar uma versão otimizada do evento.

 

 

 

Evento atualiazado! 12/04/2014

Leiam o tópico para saber o que eu mudei.

 

* Aconselho todos a instalar a nova versão, por estar otimizada.

 

Abraços.

Editado por Killua
Link para o comentário
Compartilhar em outros sites

  • 4 years later...
2 minutos atrás, kiraconquest disse:

Tentei usar este evento, mas nao consigo logar, e aparece uma sequencia de erros na distro.

O tópico é de 2014 amigo, mais atenção ao reviver tópicos.

 

Link para o comentário
Compartilhar em outros sites

  • Benny locked this tópico
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...