Ir para conteúdo

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


Killua

Posts Recomendados

Primeiro quero agradecer pelo belo sistema.

Segundo não estou encontrando: fromPos e toPos.

 

 

[Desculpem reviver o tópico]

As partes fromPos e toPos estão nas configurações que estão na lib. Elas são a última parte das configurações.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Amoeba, você resolveu o erro que eu falei? Tá perfeito, ele inicia, faz o tele, some as pedras, vc mata o bixo some as paredes, ai aparece o arcanjo, vc mata ele, recebe o premio, tudo certinho.. Mas quando ele acaba, ele automaticamente já inicia outro evento... Pelo menos no meu servidor com a talkaction foi assim rsrs

Se com essa atualização vc resolveu esse erro, beleza... Adorei esse evento...

Já te dei 2 reps...

Quando chegar em casa eu verifico haha

Abraço!

Link para o comentário
Compartilhar em outros sites

Brother da uma ajudinha ae,ta dando alguns erros no meu distro quando inicia o servidor !!

Segue os erros :

[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Warning - Actions::registerEvent] Duplicate registered item id: 2420
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:07] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:07] [Warning - LuaScriptInterface::initState] Cannot load data/lib/

 

 

 

 

[03/01/2014 00:47:08] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:08] [Warning - LuaScriptInterface::initState] Cannot load data/lib/

 

 

 

[03/01/2014 00:47:08] [Error - GlobalEvent Interface]
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:onStartup
[03/01/2014 00:47:08] Description:
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:4: attempt to index global 'bloodconfig' (a nil value)
[03/01/2014 00:47:08] stack traceback:
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:4: in function <data/globalevents/scripts/BloodGlobalStart.lua:3>

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

Você copiou errado o conteúdo da lib ou modificou ele de forma errada.

 

Para arrumar vá até


toPos = {x = 44, y = 323, z = 7}, -- Canto inferior direito da área do seu evento

no arquivo da lib, pule uma linha e coloque }

 

Ficando assim

toPos = {x = 44, y = 323, z = 7}, -- Canto inferior direito da área do seu evento
}
Link para o comentário
Compartilhar em outros sites

Segue aqui minha lib brother :



-- == Blood Castle Event por amoeba 13 - Xtibia == --

bloodconfig = {
    
    templo = {x = 912, y = 1033, z = 7}, -- templo
    
    posGuarda = {x = 785, y = 1129, z = 7}, -- Onde o guarda do portão vai nascer
    
    premios = {{2160, 1}, {2159, 10}, -- Premios que o vencedor pode ganhar {id, quantidade}
    
    positionTP = {x = 911, y = 1029, z = 7}, -- Onde o tp será criado
     
    positionEvento = {x = 783, y = 1165, z = 7}, -- Para onde o tp vai levar
     
    tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
     
    tempoAberto = 3, -- 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 = 20, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
    
    playersStorage = 54910, -- Não mude
    
    posPedra1 = {x = 783, y = 1161, z = 7, stackpos=1}, -- Posicao das pedras
    posPedra2 = {x = 784, y = 1161, z = 7, stackpos=1},
    posPedra3 = {x = 785, y = 1161, z = 7, stackpos=1},
    posPedra4 = {x = 786, y = 1161, z = 7, stackpos=1},
    posPedra5 = {x = 787, y = 1161, 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 = 785, y = 1112, z = 7}, -- Posicao onde o arcanjo vai ser criado
    
    tempoSaida = 30, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
    
    posParede1 = {x = 784, y = 1128, z = 7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer
    posParede2 = {x = 785, y = 1128, z = 7, stackpos=1},
    posParede3 = {x = 786, y = 1128, z = 7, stackpos=1},
    
    fromPos = {x = 772, y = 1106, 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 = 800, y = 1174, 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

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

Aqui está sua lib corrigida:

 

-- == Blood Castle Event por amoeba 13 - Xtibia == --

bloodconfig = {
    
    templo = {x = 912, y = 1033, z = 7}, -- templo
    
    posGuarda = {x = 785, y = 1129, z = 7}, -- Onde o guarda do portão vai nascer
    
    premios = {{2160, 1}, {2159, 10}}, -- Premios que o vencedor pode ganhar {id, quantidade}
    
    positionTP = {x = 911, y = 1029, z = 7}, -- Onde o tp será criado
     
    positionEvento = {x = 783, y = 1165, z = 7}, -- Para onde o tp vai levar
     
    tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
     
    tempoAberto = 3, -- 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 = 20, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
    
    playersStorage = 54910, -- Não mude
    
    posPedra1 = {x = 783, y = 1161, z = 7, stackpos=1}, -- Posicao das pedras
    posPedra2 = {x = 784, y = 1161, z = 7, stackpos=1},
    posPedra3 = {x = 785, y = 1161, z = 7, stackpos=1},
    posPedra4 = {x = 786, y = 1161, z = 7, stackpos=1},
    posPedra5 = {x = 787, y = 1161, 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 = 785, y = 1112, z = 7}, -- Posicao onde o arcanjo vai ser criado
    
    tempoSaida = 30, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
    
    posParede1 = {x = 784, y = 1128, z = 7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer
    posParede2 = {x = 785, y = 1128, z = 7, stackpos=1},
    posParede3 = {x = 786, y = 1128, z = 7, stackpos=1},
    
    fromPos = {x = 772, y = 1106, 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 = 800, y = 1174, 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
[/spoiler]

Vc tinha esquecido um } nessa linha:


premios = {{2160, 1}, {2159, 10}},
Link para o comentário
Compartilhar em outros sites

vc pode me fala onde meche pra coloca pra assim q destrui o guarda e abri o muro o arcanjo nasce na mesma hora

 

e quando evento temrina da esse erro

[error- talkaaction interface]

in a timer event called from

data/talkactions/scripts/blood-star.lua:onsay

description

<luagetthingfrompos>tile not found

 

 

 

desculpe ja consegui arruma 1 outra coisa n sei se e erro ou eu configurei errado mais o premium ta indo pra quem da o ultimo hit e n quem hito mais

 

 

vc poderia me fala como faz pra assimq derroa o guarda o arcanjo nascer e n ter q espera obrigado

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

Você deve ter feito alguma coisa errada... Instale tudo denovo, arquivo por arquivo, do jeito que coloquei no tópico. E também preste atenção na hora de configurar a lib (principalmente com as posições).

Link para o comentário
Compartilhar em outros sites

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