Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Primeiramente, da esse erro na talk.

 

MbDjUGX.png

 

-- == Blood Castle Event por Killua == --
function onSay(cid, words, param, channel)
     local plural = bloodconfig.tempoTP == 1 and "minuto" or "minutos"
     local plurals = bloodconfig.tempoAberto == 1 and "minuto" or "minutos"
     doBroadcastMessage("[Blood Castle] O portal para o evento vai ser aberto em " .. bloodconfig.tempoTP .. " " .. plural .. ", nao percam!")
     addEvent(createTeleportb, bloodconfig.tempoTP*60*1000)
     addEvent(doBroadcastMessage, bloodconfig.tempoTP*60*1000, "[Blood Castle] O teleport para o evento foi aberto no templo e vai sumir em " .. bloodconfig.tempoAberto .. " " .. plurals .. ". Se apressem!")
     addEvent(removeTpb, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000)
     addEvent(checkBlood, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000+60*1000)
     addEvent(Guarantee, bloodconfig.tempoMaximo*60*1000+15000)
     return true
end

 

O segundo problema, é que não remove a statua da sala de espera, no script original são mais que uma posição, porém eu coloquei todas as mesma, pq quero que suma só a estatua.

 

9rcFi96.png

 

 

lib

 

-- == Blood Castle Event por Killua == --

bloodconfig = {

     templo = {x = 1023, y = 1027, z = 7}, -- templo

     posGuarda = {x = 2720, y = 956, z = 8}, -- Onde o guarda do portão vai nascer

     premios = {{11773, 3}, {9971, 15}}, -- Premios que o vencedor vai ganhar {id, quantidade}

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

     positionEvento = {x = 2566, y = 972, z = 6}, -- 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 = 2, -- Número mínimo de players que devem entrar para que o evento aconteça

     tempoMaximo = 45, -- Tempo máximo, em minutos, que alguem pode permanecer no evento

     playersStorage = 54910, -- Não mude

     posPedras = {{x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6,stackpos=1}, {x = 2566, y = 971, z = 6,        stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento

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

     estatua = {x = 2735, y = 937, z = 5}, -- Posicao onde o arcanjo vai ser criado

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

     posParedes = {{x = 2721, y = 955, z = 8, stackpos=1}, {x = 2721, y = 956, z = 8, stackpos=1}, {x = 2721, y = 957, z = 8, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda

     fromPos = {x = 2536, y = 864, z = 8}, -- 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 = 2772, y = 1023, z = 5}, -- 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[i], 1304)
          if pedra then
               doRemoveItem(pedra.uid, 1)
          end
     end
end

function putStones()
     for i = 1, #bloodconfig.posPedras do
         local pedra = getTileItemById(bloodconfig.posPedras[i], 1304).uid
         if pedra < 1 then
             doCreateItem(1304, 1, bloodconfig.posPedras[i])
         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[i])
     end
end

function removeWalls()
     for i = 1, #bloodconfig.posParedes do
          local wall = getTileItemById(bloodconfig.posParedes[i], 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

 

 

Outra coisa, pq ao iniciar o distro, aparece 0 jogadores no evento? E passível de resolução?

 

y6tdkrZ.png

 

movements

 

-- == Blood Castle Event por Killua == --

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
     if item.actionid == 4726 then
          setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()+1)
          print(getPlayersInBlood().. " Jogadores no Blood Castle")
     elseif item.actionid == 9371 then
          setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()-1)
          print(getPlayersInBlood().. " Jogadores no Blood Castle")
     end
return true
end

 

Se precisar do script original, segue o link, porém eu so alterei na lib as modificações.

 

 

 

 

 

Resolvido por Dwarfer

Ir para solução
  • Respostas 9
  • Visualizações 605
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Realmente confundi feio ali, mais tenta puxar direto a posição sem o for ja que é apenas 1 estatua agora.E confirma pra mim oque é o "1304" function removeStones() local pedra = getTileI

  • Eu não entendi pq um Stepin printa no start do server, e tambem nao vejo a menor utilidade para printar quantia de players na distro, eu simplesmente desativaria o print amigo. -- == Blood Castle

  • Sobre o print que aparece ao iniciar o servidor, no arquivo do globalevents, tira essa linha:        print(getPlayersInBlood().. "Jogadores no Blood Castle")  

Postado

Você não precisa colocar tantas posiçoes iguais da mesma pedra, por que alguns for's iram puxar quantas pedras sao por essa tabela, apenas reduza para.

posPedras = {x = 2566, y = 971, z = 6, stackpos=1},

www.pokemiw.com
24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
 

Postado
  • Autor
  Em 31/08/2017 em 02:40, klipstyle disse:

Você não precisa colocar tantas posiçoes iguais da mesma pedra, por que alguns for's iram puxar quantas pedras sao por essa tabela, apenas reduza para.

posPedras = {x = 2566, y = 971, z = 6, stackpos=1},

 

Olá, fiz o que você sugeriu, mas ainda sim não remove a statua.

Postado
  Em 31/08/2017 em 09:44, JcA disse:

 

Olá, fiz o que você sugeriu, mas ainda sim não remove a statua.

O id esta correto em

idDasParedes 

www.pokemiw.com
24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
 

Postado
  • Autor
  Em 31/08/2017 em 18:04, klipstyle disse:

O id esta correto em


idDasParedes 

 

Não, essa parte que remove a statua não precisa de ids, isso é da parede, quando mata o guarda, o da statua é quando abre a sala de espera para começar o evento, entendeu? Tem que mudar algo no codigo

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo