• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Mods] Wave Event

    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

    avatar
    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



    Ver perfil de usuario http://www.tibiaface.com

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

    Humox

    avatar
    Miembro
    Miembro
    TFS ES?

    Ver perfil de usuario

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

    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

    Ver perfil de usuario

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

    [Admin] God Maya

    avatar
    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.")

    Ver perfil de usuario http://www.tibiaface.com

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

    Muchas gracias ADMIN GOD MAYA, me funciono Smile

    Ver perfil de usuario

    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.