Ir para conteúdo

Featured Replies

  • Respostas 6
  • Visualizações 491
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Jinx 0.3.6 8.54   monstros.xml anexados   globalevents function onTimer(cid, interval) local plural = bloodconfig.tempoTP == 1 and "minuto" or "minutos" local plurals

  • @Jinx da algum erro na distro se não você configurou algo errado o fórum também as vezes da um bug que faz o end < ficar bugado ai tem que apagar e escrever end novamente usando o notepad++ ele tem

Postado
42 minutos atrás, Jinx disse:

GOSTARIA DE PEDIR O EVENTO BLOOD CASTLE QUE FUNCIONE PERFEITAMENTE.

O que seria um Blood Castle?

Postado
  • Autor
4 minutos atrás, tataboy67 disse:

O que seria um Blood Castle?

Esse aqui amigo.
 

Porem Esse para de funcionar.

Gostaria de algum q funcionasse tranquilamente.

 

 

Postado

@Jinx 0.3.6 8.54

 

monstros.xml anexados

 

globalevents

function onTimer(cid, interval)
    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 na sala de eventos 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 

function onStartup()
    setGlobalStorageValue(bloodconfig.playersStorage, 0)
    print(getPlayersInBlood().. "Jogadores no Blood Castle")
    return true
end

 

globalevents.xml

<globalevent name="Blood Castle" time="20:24:00" event="script" value="BloodGlobalEvent.lua"/>

Lib

bloodconfig = {

     templo = {x = 1026, y = 909, z = 7}, -- templo

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

     premios = {{2160, 30}, {1995, 1}}, -- Premios que o vencedor vai ganhar {id, quantidade}

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

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

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

     tempoAberto = 5, -- Tempo que o tp fica aberto. Em minutos

     minPlayers = 3, -- Número mínimo de players que devem entrar para que o evento aconteça

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

     playersStorage = 54910, -- Não mude

     posPedras = {{x = 759, y = 1614, z = 7, stackpos=1}, {x = 760, y = 1614, z = 7,        stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento

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

     estatua = {x = 751, y = 1542, 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 = 751, y = 1573, z = 7, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda

     fromPos = {x = 720, y = 1536, 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 = 1622, 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[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

 

movements

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

movements.xml

<movevent type="StepIn" actionid="4726;9371" event="script" value="BloodMovement.lua"/>

creaturescript 3 scripts

 

bloodcreature

function onDeath(cid, corpse, mostDamageKiller)
     if isPlayer(cid) and isInArea(getCreaturePosition(cid), bloodconfig.fromPos, bloodconfig.toPos) then
          setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()-1)
     end
     return true
end

function onLogin(cid)
     if isInArea(getCreaturePosition(cid), bloodconfig.fromPos, bloodconfig.toPos) then
          doTeleportThing(cid, bloodconfig.templo, false)
          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce estava no meio do evento Blood Castle quando o servidor caiu. Voce foi teleportado para o templo.")
     end
     registerCreatureEvent(cid, "morrerblood")
     registerCreatureEvent(cid, "guardablood")
     registerCreatureEvent(cid, "arcanjoblood")
     return true
end

bloodanjo

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("Arcanjo") then
          doBroadcastMessage("[Blood Castle] " .. artigo .. " " .. getPlayerName(mostDamageKiller[1]) .. " destruiu a estatua do Arcanjo e foi o vencedor da rodada!")
          for _, premio in pairs(bloodconfig.premios) do
               doPlayerAddItem(mostDamageKiller[1], premio[1], premio[2])
           end
          doPlayerSendTextMessage(mostDamageKiller[1], 25, "Parabens voce venceu o evento Blood Castle!")
          doSendMagicEffect(getCreaturePosition(mostDamageKiller[1]), 66)
          doCreateTeleport(1387, bloodconfig.templo, bloodconfig.estatua)
          addEvent(removeTpa, bloodconfig.tempoSaida*1000)
          setGlobalStorageValue(bloodconfig.playersStorage, 0)
          putWalls()
          putStones()
     end
return true
end

bloodguarda

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
          removeWalls()
          addEvent(createAngel, 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

creaturescript.xml

	<event type="death" name="guardablood" event="script" value="BloodCreatureGuarda.lua"/>
	<event type="death" name="arcanjoblood" event="script" value="BloodCreatureAnjo.lua"/>
	<event type="death" name="morrerblood" event="script" value="BloodCreature.lua"/>
	<event type="death" name="loginblood" event="script" value="BloodCreature.lua"/>

 

Anjo.xml

Arcanjo.xml

Gargula.xml

Guarda do Portao.xml

Hidan Blood.xml

Sentinela.xml

@Jinx funcionou?

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

  • 3 weeks later...

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo