• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Mods] Wave Event

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Mods] Wave Event el Vie Ago 28, 2015 5:27 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    hola usuarios de tibiaface


    este evento trata de sobrevivir a un arena donde moustros seran sumoneados automaticamente y el ultimo sobreviviente sera el ganador.


    Código:

    <?xml version="1.0" encoding="UTF-8"?>
    <mod name="Arena" version="1.0" author="Murilo" contact="none" enabled="yes">
    <config name="arena_config"><![CDATA[
      config = {
      delay = 1,
      posicaoPlayer = {x = 2426,y = 2499,z = 8},
      posicaoArena = {{x = 2418,y = 2491,z = 8},{x = 2434,y = 2507,z = 8}},
      premio = {
      {2160,50},
      },
      storage = 15444, -- não mecha..
      posicaoTp = {x = 2501, y = 2499, z = 7}, -- posiçion del teleport aparecera
      acesso = 5, -- acesso  minimo para ser ignorado en el evento
      }
      leveis = {
      [1] = {{"Grim reaper",5},{"Hydra",5}},
      [2] = {{"Dragon Lord",5},{"Behemoth",5}},
      [3] = {{"Frost Dragon",10},{"Ferumbras",1}},
      [4] = {{"Orshabaal",2},{"Demon",3}},
      [5] = {{"Ghazbaran",1},{"Morgaroth",1}},
      }
     
      function abrirTeleport(n)
            doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941)
            doBroadcastMessage("[Unicos Sobrevivente] fue abierto faltan ".. n .. " players para el evento comensar.")
            doSetStorage(config.storage, n)
      end
     
      function fecharTPeAguardarEvento()
            doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100)
            doBroadcastMessage("[Unicos Sobrevivente] ya termino " .. #getPlayersInArena() .. " players comensar en " .. config.delay .. " minutos!")
            addEvent(evento,config.delay*60*1000,1)
      end
     
     
      function HaveCreatureArena(area, remove, clean)
                            for x = area[1].x - 1, area[2].x + 1 do
                                    for y = area[1].y - 1, area[2].y + 1 do
                                            local pos = {x=x, y=y, z=area[1].z}
                                            local m = getTopCreature(pos).uid
                                            if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end
                                            if clean ~= false then doCleanTile(pos, false) end
                                    end
      end
      end
      function resetEvento()
            doSetStorage(config.storage, -1)
      end
     
      function criarMonstros(lv)
            local monstro = leveis[lv]
            local area = {config.posicaoArena[1],config.posicaoArena[2]}
            for i = 1,#monstro do
            for k=1,monstro[i][2]do
                    pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z}
              monstrinho = doCreateMonster(monstro[i][1], pos)
            end
            end
      end
     
      function evento(i)
            if #getPlayersInArena() == 0 then
            doBroadcastMessage("[Unicos Sobrevivente] ningun sobreviviente, Evento finalizado.")
            HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true)
            resetEvento()
            return true
            end
     
            if i == (#leveis +1) then
            HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true)
              doBroadcastMessage("[Unicos Sobrevivente] solamente " .. #getPlayersInArena() .. " quedan vivos en el evento. ")
            for _, pid in ipairs(getPlayersInArena()) do
              doPlayerSendTextMessage(pid,22,"[Unicos Sobrevivente] en hora buena usted esta vivo.")
              addItens(pid)
              doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))
            end
              resetEvento()
              return true
            end
            for _, pid  in ipairs(getPlayersInArena()) do
            doBroadcastMessage("[Unicos Sobrevivente] Está la " .. i .. " wave están comensando mas dificil.")
            end
            criarMonstros(i)
            addEvent(evento,config.delay*60*1000,i+1)
      end
      function addItens(pid)
            for i=1,#config.premio do
            doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2])
            end
            doPlayerSendTextMessage(pid,22,"[Unicos Sobrevivente], en hora buena usted gano y recibio su premio.")
      end
     
      function getPlayersInArena()
      local t = {}
            for _, pid in pairs(getPlayersOnline()) do
            if getPlayerAccess(pid) < config.acesso then
            if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then
                                                    table.insert(t, pid)
            end
            end
            end
      return t
      end
     
    ]]></config>
    <talkaction words="/eventoarena" event="buffer"><![CDATA[
      domodlib('arena_config')
      if getPlayerAccess(cid) < config.acesso then
      return doPlayerSendCancel(cid,"solo admistradores tienen acceso al evento.")
      end
      if tonumber(param) ~= nil then
      if tonumber(param) > 0 then
            doSetStorage(config.storage, param)
            abrirTeleport(param)
      end
      else
      doPlayerSendTextMessage(cid,19,"Digite /eventoarena y un numero, dependiendo del numero /eventoarena 5 apenas 5 jugadores van a participar.")
      end
     
    ]]></talkaction>
    <movevent type="StepIn" actionid="2941" event="script"><![CDATA[
                    domodlib('arena_config')
                           
            if getPlayerAccess(cid) > config.acesso then
            doTeleportThing(cid, config.posicaoPlayer)
            return false
            end
            doSetStorage(config.storage,getStorage(config.storage) - 1)
            doTeleportThing(cid, config.posicaoPlayer)
            registerCreatureEvent(cid, "naoAtacarPlayer")
            registerCreatureEvent(cid, "morrerNaArena")
            if getStorage(config.storage) <= 0 then
            fecharTPeAguardarEvento()
            end
            return true
         
    ]]></movevent>
    <event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[
    domodlib('arena_config')
    if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    return true
     
    ]]></event>
    <event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[
                                    domodlib('arena_config')
                                    if isPlayer(cid) and isPlayer(target) then
                                              if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then
                                                                    doPlayerSendCancel(cid, "usted no puede atacar a sus amigos.")
                                                                    return false
                                                    end
                                    end
                                    return true
     
    ]]></event>
    <event type="statschange" name="morrerNaArena" event="script"><![CDATA[
                                    domodlib('arena_config')
            if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
            if type == STATSCHANGE_HEALTHLOSS then
              if isPlayer(cid) then
                                                                    if value >= getCreatureHealth(cid) then
                    doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
                    doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")
                    doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
                    return false
                    end
                                                    end
              end
                                    end
                                    return true
    ]]></event>
    </mod>

    configuracion:

    delay = 1, -- tiempo en minuto en aparecer la siguiente invacion o wave
    posicaoPlayer = {x = 2426,y = 2499,z = 8}, -- posicion donde el player es teleportado.
    posicaoArena = {{x = 2418,y = 2491,z = 8},{x = 2434,y = 2507,z = 8}}, -- posicion de la arena fron y topos, esquina superior izquierda y esquina inferior derecha.
    posicaoTp = {x = 2501, y = 2499, z = 7}, -- posicion dle teleport donde aparecera,

    leveis = { -- usted puede editar las wave con su moustros preferidos.

    creditos en el mods



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    2default Re: [Mods] Wave Event el Vie Ago 28, 2015 6:17 pm

    Humox

    Humox
    Miembro
    Miembro
    TFS ES?

    3default Re: [Mods] Wave Event el Sáb Mayo 06, 2017 8:54 pm

    Miguel Albertto

    Miguel Albertto
    Miembro
    Miembro
    Aqui un error que me aperece: tfs 0.3.7 otxserver 2.9
    Código:
    [6/5/2017 19:53:7] [Error - CreatureScript Interface]
    [6/5/2017 19:53:7] function onStatsChange(cid, attacker, type, combat, value)
    [6/5/2017 19:53:7] domodlib('arena_config')
    [6/5/2017 19:53:7]          if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    [6/5/2017 19:53:7]          if type == STATSCHANGE_HEALTHLOSS then
    [6/5/2017 19:53:7]          if isPlayer(cid) then
    [6/5/2017 19:53:7]                                                                if value >= getCreatureHealth(cid) then
    [6/5/2017 19:53:7]                  doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
    [6/5/2017 19:53:7]                  doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")
    [6/5/2017 19:53:7]                  doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
    [6/5/2017 19:53:7]                return false
    [6/5/2017 19:53:7]                end
    [6/5/2017 19:53:7]                                                end
    [6/5/2017 19:53:7]          end
    [6/5/2017 19:53:7]                                end
    [6/5/2017 19:53:7]                                return true

    [6/5/2017 19:53:7] end:onStatsChange
    [6/5/2017 19:53:7] Description:
    [6/5/2017 19:53:7] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

    [6/5/2017 19:53:19] [Error - CreatureScript Interface]
    [6/5/2017 19:53:19] function onStatsChange(cid, attacker, type, combat, value)
    [6/5/2017 19:53:19] domodlib('arena_config')
    [6/5/2017 19:53:19]          if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    [6/5/2017 19:53:19]          if type == STATSCHANGE_HEALTHLOSS then
    [6/5/2017 19:53:19]          if isPlayer(cid) then
    [6/5/2017 19:53:19]                                                                if value >= getCreatureHealth(cid) then
    [6/5/2017 19:53:19]                  doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
    [6/5/2017 19:53:19]                  doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")
    [6/5/2017 19:53:19]                  doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
    [6/5/2017 19:53:19]                return false
    [6/5/2017 19:53:19]                end
    [6/5/2017 19:53:19]                                                end
    [6/5/2017 19:53:19]          end
    [6/5/2017 19:53:19]                                end
    [6/5/2017 19:53:19]                                return true

    [6/5/2017 19:53:19] end:onStatsChange
    [6/5/2017 19:53:19] Description:
    [6/5/2017 19:53:19] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

    4default teste el Sáb Mayo 06, 2017 9:45 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Aqui un error que me aperece: tfs 0.3.7 otxserver 2.9
    Código:
    [6/5/2017 19:53:7] [Error - CreatureScript Interface]
    [6/5/2017 19:53:7] function onStatsChange(cid, attacker, type, combat, value)
    [6/5/2017 19:53:7] domodlib('arena_config')
    [6/5/2017 19:53:7]          if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    [6/5/2017 19:53:7]          if type == STATSCHANGE_HEALTHLOSS then
    [6/5/2017 19:53:7]          if isPlayer(cid) then
    [6/5/2017 19:53:7]                                                                if value >= getCreatureHealth(cid) then
    [6/5/2017 19:53:7]                  doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
    [6/5/2017 19:53:7]                  doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")
    [6/5/2017 19:53:7]                  doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
    [6/5/2017 19:53:7]                return false
    [6/5/2017 19:53:7]                end
    [6/5/2017 19:53:7]                                                end
    [6/5/2017 19:53:7]          end
    [6/5/2017 19:53:7]                                end
    [6/5/2017 19:53:7]                                return true

    [6/5/2017 19:53:7] end:onStatsChange
    [6/5/2017 19:53:7] Description:
    [6/5/2017 19:53:7] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

    [6/5/2017 19:53:19] [Error - CreatureScript Interface]
    [6/5/2017 19:53:19] function onStatsChange(cid, attacker, type, combat, value)
    [6/5/2017 19:53:19] domodlib('arena_config')
    [6/5/2017 19:53:19]          if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    [6/5/2017 19:53:19]          if type == STATSCHANGE_HEALTHLOSS then
    [6/5/2017 19:53:19]          if isPlayer(cid) then
    [6/5/2017 19:53:19]                                                                if value >= getCreatureHealth(cid) then
    [6/5/2017 19:53:19]                  doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
    [6/5/2017 19:53:19]                  doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")
    [6/5/2017 19:53:19]                  doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
    [6/5/2017 19:53:19]                return false
    [6/5/2017 19:53:19]                end
    [6/5/2017 19:53:19]                                                end
    [6/5/2017 19:53:19]          end
    [6/5/2017 19:53:19]                                end
    [6/5/2017 19:53:19]                                return true

    [6/5/2017 19:53:19] end:onStatsChange
    [6/5/2017 19:53:19] Description:
    [6/5/2017 19:53:19] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

    creo que ahi esta mal

    Código:
    doPlayerSendTextMessage(pid,

    creo que deveria ser asi

    Código:
    doPlayerSendTextMessage(cid,


    doPlayerSendTextMessage(pid,22,"[Unico Sobrevivente] Você morreu no evento.")

    https://www.tibiaface.com

    5default Re: [Mods] Wave Event el Sáb Mayo 06, 2017 10:46 pm

    Miguel Albertto

    Miguel Albertto
    Miembro
    Miembro
    Muchas gracias ADMIN GOD MAYA, me funciono Smile

    6default Re: [Mods] Wave Event el Sáb Feb 24, 2018 1:20 am

    Tibia Matatan

    Tibia Matatan
    Miembro
    Miembro
    si no entra la cantidad de gente necesaria quedan traped hasta que llegue la gente necesaria
    ejemplo
    tienen que entrar 5
    entran 3 y quedan atrapados hasta que entren 5

    7default Re: [Mods] Wave Event el Sáb Feb 24, 2018 12:18 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:si no entra la cantidad de gente necesaria quedan traped hasta que llegue la gente necesaria
    ejemplo
    tienen que entrar 5
    entran 3 y quedan atrapados hasta que entren 5


    Código:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Arena" version="1.0" author="DrakyLucas" contact="XTibia" enabled="yes">
    <config name="arena_config"><![CDATA[
     config = {
      delay = 60, -- tempo de um level para o outro
      posicaoPlayer = {x = 318, y = 1811, z = 7}, -- posição q o player vai cair dps de entra no TP
      posicaoArena = {{x = 306, y = 1803, z = 7},{x = 330, y = 1818, z = 7}},
      premio = {
      {2160,70},
      {2152,50},
      }, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser.
      storage = 15444, -- não mecha..
      posicaoTp = {x = 1440, y = 1198, z = 7}, -- posicao que o teleporte vai aparecer
      acesso = 3, -- acesso  minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo
     }
     -- você pode adicionar quantos leveis desejar
     -- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}},
     leveis = {
     [1] = {{"Elder Hydra",5}},
     [2] = {{"Elder Hydra",5},{"Elder Dragon Lord",4}},
     [3] = {{"Elder Dragon Lord",7}},
     [4] = {{"King Kong",1},{"Angry Lady",3}},
      [5] = {{"Demon lord",7},{"Demon",4},{"Dragon",5}},
    [6] = {{"Demon",6},{"Orshabaal",1},{"Ferumbras",1}},
    [7] = {{"Angry Lady",4},{"Morgaroth",1},{"Ferumbras",2}},
    [8] = {{"Demon lord",4},{"Angry Lady",1},{"Oblivions",1}},
     }

      function abrirTeleport(n)
          doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941) -- cria o tp e deixa aid 2941
          doBroadcastMessage("The event will start arena! teleport was open on room event and".. n .. " people for the event starts!")
          doSetStorage(config.storage, n)
      end

      function fecharTPeAguardarEvento()
          doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100)
          doBroadcastMessage("The event has been closed " .. #getPlayersInArena() .. " and players will begin in " .. config.delay .. " segundos!")
          addEvent(evento,config.delay*1000,1)
      end


      function HaveCreatureArena(area, remove, clean) -- função do Vodkart
                          for x = area[1].x - 1, area[2].x + 1 do
                                  for y = area[1].y - 1, area[2].y + 1 do
                                          local pos = {x=x, y=y, z=area[1].z}
                                          local m = getTopCreature(pos).uid
                                          if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end
                                          if clean ~= false then doCleanTile(pos, false) end
                                  end
      end
      end
      function resetEvento()
          doSetStorage(config.storage, -1)
      end

      function criarMonstros(lv)
          local monstro = leveis[lv]
          local area = {config.posicaoArena[1],config.posicaoArena[2]}
          for i = 1,#monstro do
            for k=1,monstro[i][2]do
                  pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z}
            monstrinho = doCreateMonster(monstro[i][1], pos)
            registerCreatureEvent(monstrinho, "removerCorpse")
            end
          end
      end

      function evento(i)
          if #getPlayersInArena() == 0 then
            doBroadcastMessage("Nobody survived the arena.")
            doBroadcastMessage("EVENTO TERMINADO!")
            HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena
            resetEvento()
            return true
          end

          if i == (#leveis +1) then
          HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true)
            doBroadcastMessage("Event finalized, " .. #getPlayersInArena() .. " survived the event!")
            for _, pid in ipairs(getPlayersInArena()) do
            doPlayerSendTextMessage(pid,22,"Congratulations, you survived the event!")
            addItens(pid)
            doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))
            end
            resetEvento()
            return true
          end
            for _, pid  in ipairs(getPlayersInArena()) do
            doPlayerSendTextMessage(pid,22,"GoGo Nivel " .. i .. " !!!")
            end
          criarMonstros(i)
          addEvent(evento,config.delay*1000,i+1)
      end
      function addItens(pid)
          for i=1,#config.premio do
            doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2])
          end
          doPlayerSendTextMessage(pid,22,"Congratulations, you have received their prizes!")
      end

      function getPlayersInArena()
      local t = {}
          for _, pid in pairs(getPlayersOnline()) do
            if getPlayerAccess(pid) < config.acesso then
            if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then
                                                  table.insert(t, pid)
            end
            end
          end
      return t
      end

    ]]></config>
    <talkaction words="/arena" event="buffer"><![CDATA[
     domodlib('arena_config')
     if getPlayerAccess(cid) < config.acesso then
      return doPlayerSendCancel(cid,"You do not have access to this command")
     end
     if tonumber(param) ~= nil then -- se o parametro é numerico
      if tonumber(param) > 0 then
          doSetStorage(config.storage, param)
          abrirTeleport(param)
      end
     else
     doPlayerSendTextMessage(cid,19,"Comando /arena y un numero.. \n ejemplo: \n/arena 5")
     end

    ]]></talkaction>

    <movevent type="StepIn" actionid="2941" event="script"><![CDATA[
                  domodlib('arena_config')
          if getPlayerAccess(cid) > config.acesso then doTeleportThing(cid, config.posicaoPlayer) return false
    elseif getPlayerAccess(cid) < config.acesso then
          doSetStorage(config.storage,getStorage(config.storage) - 1)
          doTeleportThing(cid, config.posicaoPlayer)
          registerCreatureEvent(cid, "naoAtacarPlayer")
          registerCreatureEvent(cid, "morrerNaArena")
          if getStorage(config.storage) <= 0 then
          fecharTPeAguardarEvento()
          end
    end
          return true
    ]]></movevent>
    <event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[
    domodlib('arena_config')
    if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    return true 
    ]]></event>
    <event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[
                                    domodlib('arena_config')
                                    if isPlayer(cid) and isPlayer(target) then
                                              if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then
                                                                  doPlayerSendCancel(cid, "Do not attack your team.")
                                                                  return false
                                                  end
                                  end
                                  return true
    ]]></event>
    <event type="death" name="removerCorpse" event="script"><![CDATA[
                                    domodlib('arena_config')
            doCreatureSay(cid,"Nobody will take my loot! Buaahahahha",1)
            pos = getCreaturePosition(cid)
            addEvent(doCleanTile,1,pos, false)
                                  return true
    ]]></event>
    <event type="statschange" name="morrerNaArena" event="script"><![CDATA[
                                    domodlib('arena_config')
            if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
            if type == STATSCHANGE_HEALTHLOSS then
            if isPlayer(cid) then
                                                                  if value >= getCreatureHealth(cid) then
                    doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
                    doPlayerSendTextMessage(pid,22,"You died in the arena = / .. look on the bright side, you did not miss anything!")
                    doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
                  return false
                  end
                                                  end
            end
                                  end
                                  return true
    ]]></event>
    </mod>



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    8default Re: [Mods] Wave Event el Sáb Feb 24, 2018 6:18 pm

    JeisonG-vnzla

    JeisonG-vnzla
    Miembro
    Miembro
    Maya lo tienes que si no entra la cantidad de players a cierto tiempo configurable se kikean todos los players al templo y el evento se cierre? Gracias espero respuesta Very Happy

    9default Re: [Mods] Wave Event el Vie Jun 19, 2020 3:10 am

    chili bizc

    chili bizc
    Miembro
    Miembro
    hay manera de hacer que al no entrar la cantidad de players, los kicke y se cierre el tp?

    10default Re: [Mods] Wave Event el Vie Jun 19, 2020 11:46 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:hay manera de hacer que al no entrar la cantidad de players, los kicke y se cierre el tp?

    Código:


            <?xml version="1.0" encoding="ISO-8859-1"?>
            <mod name="Arena" version="1.0" author="DrakyLucas" contact="XTibia" enabled="yes">
            <config name="arena_config"><![CDATA[
            config = {
              delay = 60, -- tempo de um level para o outro
              posicaoPlayer = {x = 318, y = 1811, z = 7}, -- posição q o player vai cair dps de entra no TP
              posicaoArena = {{x = 306, y = 1803, z = 7},{x = 330, y = 1818, z = 7}},
              premio = {
              {2160,70},
              {2152,50},
              }, -- ID, Quantidade... só aceita de 1 a 100 por vez, e você pode adicionar quantos itens quiser.
              storage = 15444, -- não mecha..
              posicaoTp = {x = 1440, y = 1198, z = 7}, -- posicao que o teleporte vai aparecer
              acesso = 3, -- acesso  minimo para ser ignorado pelo evento, e o mesmo acesso para poder inicializa-lo
            limite = 3, -- limite de player arena para poder ser iniciada
            }
            -- você pode adicionar quantos leveis desejar
            -- [NumeroDoLevel] = {{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade},{"Nome",Quantidade}},
            leveis = {
            [1] = {{"Elder Hydra",5}},
            [2] = {{"Elder Hydra",5},{"Elder Dragon Lord",4}},
            [3] = {{"Elder Dragon Lord",7}},
            [4] = {{"King Kong",1},{"Angry Lady",3}},
              [5] = {{"Demon lord",7},{"Demon",4},{"Dragon",5}},
            [6] = {{"Demon",6},{"Orshabaal",1},{"Ferumbras",1}},
            [7] = {{"Angry Lady",4},{"Morgaroth",1},{"Ferumbras",2}},
            [8] = {{"Demon lord",4},{"Angry Lady",1},{"Oblivions",1}},
            }

              function abrirTeleport(n)
                  doItemSetAttribute(doCreateItem(1387, config.posicaoTp), "aid", 2941) -- cria o tp e deixa aid 2941
                  doBroadcastMessage("The event will start arena! teleport was open on room event and".. n .. " people for the event starts!")
                  doSetStorage(config.storage, n)
              end

              function fecharTPeAguardarEvento()
                  doRemoveItem(getTileItemById(config.posicaoTp, 1387).uid,100)
                  doBroadcastMessage("The event has been closed " .. #getPlayersInArena() .. " and players will begin in " .. config.delay .. " segundos!")
                  addEvent(evento,config.delay*1000,1)
              end


              function HaveCreatureArena(area, remove, clean) -- função do Vodkart
                                  for x = area[1].x - 1, area[2].x + 1 do
                                          for y = area[1].y - 1, area[2].y + 1 do
                                                  local pos = {x=x, y=y, z=area[1].z}
                                                  local m = getTopCreature(pos).uid
                                                  if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end
                                                  if clean ~= false then doCleanTile(pos, false) end
                                          end
              end
              end
              function resetEvento()
                  doSetStorage(config.storage, -1)
              end

              function criarMonstros(lv)
                  local monstro = leveis[lv]
                  local area = {config.posicaoArena[1],config.posicaoArena[2]}
                  for i = 1,#monstro do
                    for k=1,monstro[i][2]do
                          pos = {x=math.random(area[1].x,area[2].x), y=math.random(area[1].y,area[2].y), z=area[1].z}
                    monstrinho = doCreateMonster(monstro[i][1], pos)
                    registerCreatureEvent(monstrinho, "removerCorpse")
                    end
                  end
              end

              function evento(i)
                  if #getPlayersInArena() == 0 then
                    doBroadcastMessage("Nobody survived the arena.")
                    doBroadcastMessage("EVENTO TERMINADO!")
                    HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena
                    resetEvento()
                    return true
                  end
              
                 if #getPlayersInArena() < config.limite then
                    doBroadcastMessage("La arena no cumplio con el requerimiento minimo de 3 player.")
                    doBroadcastMessage("EVENTO TERMINADO!")
                    HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true) -- remove monstros, itens da arena
                    resetEvento()
                    return true
                  end

                  if i == (#leveis +1) then
                  HaveCreatureArena({config.posicaoArena[1],config.posicaoArena[2]}, true, true)
                    doBroadcastMessage("Event finalized, " .. #getPlayersInArena() .. " survived the event!")
                    for _, pid in ipairs(getPlayersInArena()) do
                    doPlayerSendTextMessage(pid,22,"Congratulations, you survived the event!")
                    addItens(pid)
                    doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))
                    end
                    resetEvento()
                    return true
                  end
                    for _, pid  in ipairs(getPlayersInArena()) do
                    doPlayerSendTextMessage(pid,22,"GoGo Nivel " .. i .. " !!!")
                    end
                  criarMonstros(i)
                  addEvent(evento,config.delay*1000,i+1)
              end
              function addItens(pid)
                  for i=1,#config.premio do
                    doPlayerAddItem(pid,config.premio[i][1],config.premio[i][2])
                  end
                  doPlayerSendTextMessage(pid,22,"Congratulations, you have received their prizes!")
              end

              function getPlayersInArena()
              local t = {}
                  for _, pid in pairs(getPlayersOnline()) do
                    if getPlayerAccess(pid) < config.acesso then
                    if isInRange(getCreaturePosition(pid), config.posicaoArena[1], config.posicaoArena[2]) then
                                                          table.insert(t, pid)
                    end
                    end
                  end
              return t
              end

            ]]></config>
            <talkaction words="/arena" event="buffer"><![CDATA[
            domodlib('arena_config')
            if getPlayerAccess(cid) < config.acesso then
              return doPlayerSendCancel(cid,"You do not have access to this command")
            end
            if tonumber(param) ~= nil then -- se o parametro é numerico
              if tonumber(param) > 0 then
                  doSetStorage(config.storage, param)
                  abrirTeleport(param)
              end
            else
            doPlayerSendTextMessage(cid,19,"Comando /arena y un numero.. \n ejemplo: \n/arena 5")
            end

            ]]></talkaction>

            <movevent type="StepIn" actionid="2941" event="script"><![CDATA[
                          domodlib('arena_config')
                  if getPlayerAccess(cid) > config.acesso then doTeleportThing(cid, config.posicaoPlayer) return false
            elseif getPlayerAccess(cid) < config.acesso then
                  doSetStorage(config.storage,getStorage(config.storage) - 1)
                  doTeleportThing(cid, config.posicaoPlayer)
                  registerCreatureEvent(cid, "naoAtacarPlayer")
                  registerCreatureEvent(cid, "morrerNaArena")
                  if getStorage(config.storage) <= 0 then
                  fecharTPeAguardarEvento()
                  end
            end
                  return true
            ]]></movevent>
            <event type="login" name="VerSeTaNaArenaEExpulsa" event="script"><![CDATA[
            domodlib('arena_config')
            if isInRange(getCreaturePosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
            end
            return true 
            ]]></event>
            <event type="combat" name="naoAtacarPlayer" event="script"><![CDATA[
                                            domodlib('arena_config')
                                            if isPlayer(cid) and isPlayer(target) then
                                                      if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) and isInRange(getPlayerPosition(target), config.posicaoArena[1], config.posicaoArena[2]) then
                                                                          doPlayerSendCancel(cid, "Do not attack your team.")
                                                                          return false
                                                          end
                                          end
                                          return true
            ]]></event>
            <event type="death" name="removerCorpse" event="script"><![CDATA[
                                            domodlib('arena_config')
                    doCreatureSay(cid,"Nobody will take my loot! Buaahahahha",1)
                    pos = getCreaturePosition(cid)
                    addEvent(doCleanTile,1,pos, false)
                                          return true
            ]]></event>
            <event type="statschange" name="morrerNaArena" event="script"><![CDATA[
                                            domodlib('arena_config')
                    if isInRange(getPlayerPosition(cid), config.posicaoArena[1], config.posicaoArena[2]) then
                    if type == STATSCHANGE_HEALTHLOSS then
                    if isPlayer(cid) then
                                                                          if value >= getCreatureHealth(cid) then
                            doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
                            doPlayerSendTextMessage(pid,22,"You died in the arena = / .. look on the bright side, you did not miss anything!")
                            doCreatureAddHealth(cid,getCreatureMaxHealth(cid) - getCreatureHealth(cid))
                          return false
                          end
                                                          end
                    end
                                          end
                                          return true
            ]]></event>
            </mod>


    aqui lo tienes consejo nunca poner en el comando menor que el limite que establescan en el evento o si no nunca empesara



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    11default Re: [Mods] Wave Event el Vie Jun 19, 2020 12:43 pm

    chili bizc

    chili bizc
    Miembro
    Miembro
    despues de cuanto tiempo se supone que se cierra el tp y se cancela el evento?

    12default Re: [Mods] Wave Event el Vie Jun 19, 2020 2:52 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:despues de cuanto tiempo se supone que se cierra el tp y se cancela el evento?

    ahi dice delay
    Código:

    delay = 1,
    1 minuto



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    13default Re: [Mods] Wave Event el Dom Jun 21, 2020 10:20 pm

    chili bizc

    chili bizc
    Miembro
    Miembro
    no se supone que ese delay es el tiempo en el que salen las waves de los mobs?
    lo deje minutos adentro del tp con menos de lo que pedi de jugadores y nunca los saco ni cerro tp

    14default Re: [Mods] Wave Event el Dom Jun 21, 2020 11:08 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no se supone que ese delay es el tiempo en el que salen las waves de los mobs?
    lo deje minutos adentro del tp con menos de lo que pedi de jugadores y nunca los saco ni cerro tp

    que le falta a este evento para que sea perfecto



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    15default Re: [Mods] Wave Event el Dom Jun 21, 2020 11:16 pm

    chili bizc

    chili bizc
    Miembro
    Miembro
    pues creo que solo eso XD que se acabe el evento cuando lo tenga los players suficientes xD

    16default Re: [Mods] Wave Event el Lun Jun 22, 2020 12:34 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:pues creo que solo eso XD que se acabe el evento cuando lo tenga los players suficientes xD

    insuficientes o suficientes



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    17default Re: [Mods] Wave Event el Lun Jun 22, 2020 12:36 pm

    chili bizc

    chili bizc
    Miembro
    Miembro
    cuando no tenga los players Suficientes xd

    18default Re: [Mods] Wave Event el Lun Jun 22, 2020 6:20 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:cuando no tenga los players Suficientes xd

    en el scrip original mira esto

    Código:
     if getStorage(config.storage) <= 0 then

    la linea completa se ve asi

    Código:

    if getStorage(config.storage) <= 0 then
                  fecharTPeAguardarEvento()
                  end

    pero que dice la primero linea

    Código:
     if getStorage(config.storage) <= 0 then

    aqui esta poniendo un limite si el storage es menor o igual a cero el evento se cierra aqui ya esta colocando un limite ahi puedes colcoar digamo el valor 5 ejemplo


    Código:
     if getStorage(config.storage) < 5 then

    dice esta linea si tiene el valor menor a 5 player no se puede ejecutar el evento



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    19default Re: [Mods] Wave Event el Miér Jun 24, 2020 3:07 pm

    nuelma123

    nuelma123
    Miembro
    Miembro
    como se instala, puedes explicarmelo,
    uso tfs 1.1

    20default Re: [Mods] Wave Event el Miér Jun 24, 2020 7:00 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:como se instala, puedes explicarmelo,
    uso tfs 1.1

    no es compatible ccon el protocolo Tfs 1.x en adelante



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    21default Re: [Mods] Wave Event el Vie Jun 26, 2020 4:49 pm

    chili bizc

    chili bizc
    Miembro
    Miembro
    gracias maya pero no hay tiempo para que empiece el evento, no? o sea entran y si en 5min no se completan los jugadores, se cancela

    22default Re: [Mods] Wave Event el Vie Jun 26, 2020 5:32 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:gracias maya pero no hay tiempo para que empiece el evento, no? o sea entran y si en 5min no se completan los jugadores, se cancela

    correcto



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    23default Re: [Mods] Wave Event el Vie Jun 26, 2020 9:01 pm

    JeisonG-vnzla

    JeisonG-vnzla
    Miembro
    Miembro
    mi amigo maya testee el evento , resulta que funciona pero daña el login de los players... entran y cuando mueren no pueden logear mas

    24default Re: [Mods] Wave Event el Vie Jun 26, 2020 9:05 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:mi amigo maya testee el evento , resulta que funciona pero daña el login de los players... entran y cuando mueren no pueden logear mas

    revise si

    doSetStorage

    es una funcion que puede usar en su ot si noe s asi tendra que modificarla de todo el scripts



    [Mods] Wave Event YNU5B25
    https://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).