BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Usar x item y aparescan montruos

Usar x item y aparescan montruos

#1 Usar x item y aparescan montruos el Miér Mayo 07, 2014 7:35 am

newlegacy


Aprendiz
Saludos blacktibia, necesito este script no se si estoy pidiendo de masiado pero hay voy, el script consiste en que usas x ítem con actionID y aparecen montruos por determinado tiempo(que uno pueda ajustar el tiempo) y cuando pase ese tiempo aparesca un portal que se cierre en 3 minutos.

es parecido al cristal de la warzone 1 pero que se use cada 5 minutos   

#2 Re: Usar x item y aparescan montruos el Miér Mayo 07, 2014 10:10 am

Belerofonte


Administrador
Servidor/Data/Actions/Actions.xml:
Código:
<action actionid="1982" event="script" value="monster time portal.lua"/>
Servidor/Data/Actions/Scripts... monster time portal.lua: (u obviamente el nombre que le quieras poner al archivo.lua)
Código:
local Config = {
  strEx = 13950, -- Storage Value que gustes.
  Tp = {
  Abierto = 2, -- Minutos que tardará en abrirse. (2 minutos)
  Cerrado = 5, -- Minutos que tardará en cerrarse: (3 minutos), más los Minutos que hayas puesto en la anterior línea: (2 minutos), dando lugar a: (5 minutos).
  Aparece = {x=941, y=1022, z=8}, -- Coordenada del lugar donde aparecerá el teleport.
  Destino = {x=946, y=1023, z=8} -- Coordenada del lugar hacia donde teletransportará.
  },
  Monstruos = {
--{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
  {"Cat", {x=941, y=1023, z=8}},
  {"Chicken", {x=942, y=1023, z=8}},
  {"Dog", {x=943, y=1023, z=8}},
             }
               }
  local v = Config
local function removeTp(pos)
  local Belero = getTileItemById(v.Tp.Aparece, 1387)
    if Belero then
      doRemoveItem(Belero.uid, 1)
      doSendMagicEffect(v.Tp.Aparece, CONST_ME_POFF)
    end
end
function onUse(cid, item, pos)
    if os.time(t) <= getGlobalStorageValue(v.strEx) then
      doSendMagicEffect (getThingPos(item.uid), CONST_ME_POFF)
 else
      setGlobalStorageValue(cid, v.strEx, (os.time(t) + v.Tp.Cerrado))
  addEvent (doCreateTeleport, v.Tp.Abierto*60*1000, 1387, v.Tp.Destino, v.Tp.Aparece)
  addEvent (removeTp, v.Tp.Cerrado*60*1000, pos)
        for _, monster in ipairs(v.Monstruos) do
          doCreateMonster (monster[1], monster[2])
          doSendMagicEffect (monster[2], CONST_ME_TELEPORT)
 end
 end
end

Instrucción:
local Config = {
 strEx = 13950, -- Storage Value que gustes.
 Tp = {
 Abierto = 2, -- Minutos que tardará en aparecer.
 Cerrado = 5, -- Minutos que tardará en cerrarse: (3 minutos), más los Minutos que hayas puesto en la anterior línea: (2 minutos), dando lugar a: (5 minutos).
 Aparece = {x=941, y=1022, z=8}, -- Coordenada del lugar donde aparecerá el teleport.
 Destino = {x=946, y=1023, z=8} -- Coordenada del lugar hacia donde teletransportará.
 },
 Monstruos = {
--{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
 {"Cat", {x=941, y=1023, z=8}},
 {"Chicken", {x=942, y=1023, z=8}},
 {"Dog", {x=943, y=1023, z=8}},
            }
              }

Para añadir más monstruos y sus respectivos lugares simplemente has de duplicar tantas líneas como quieras de las anteriores:
Monstruos = {
--{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
 {"Cat", {x=941, y=1023, z=8}},
 {"Chicken", {x=942, y=1023, z=8}},
 {"Dog", {x=943, y=1023, z=8}},
 {"Bat", {x=944, y=1073, z=8}},
 {"Vampire", {x=945, y=1123, z=8}},
 {"Demon", {x=948, y=1021, z=8}},
 {"Snake", {x=114, y=1173, z=8}},
 {"Cobra", {x=242, y=1623, z=8}},
 {"Dragon Lord", {x=438, y=8021, z=8}},

            }
              }

Está hecho de forma que si el jugador vuelve a darle al objeto, no se volverá a accionar el script hasta que hayan pasado los minutos que hayas puesto en lo que tardará en cerrarse el teleport

Una cosa más... ¿quiéres que cuando haya pasado el X tiempo y vuelvan accionar el objeto desaparezcan los monstruos que se hayan creado y no hayan matado la vez anterior y aparezcan unos nuevos para que no se llene de spam? D:



Última edición por Belerofonte el Miér Mayo 07, 2014 12:05 pm, editado 3 veces



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#3 Re: Usar x item y aparescan montruos el Miér Mayo 07, 2014 10:40 am

newlegacy


Aprendiz
gracias hermano por tu ayuda me sirvió mucho mil gracias

#4 Re: Usar x item y aparescan montruos el Miér Mayo 07, 2014 11:31 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:gracias hermano por tu ayuda me sirvió mucho mil gracias
Disculpa, vuelve a copiar el script de arriba que en el último momento me percaté de que hice una cosita mal: (es algo confuso pues solo lo pongo como información adicional, no es necesario que lo mires xd)

Por un lado, si se le daba al objeto empezaba el "cronómetro" de 2 minutos:
Abierto = 2 * 60 * 1000, -- Minutos que tardará en abrirse. (X * 60 * 1000)
Para que se abriera el portal:
addEvent (doCreateTeleport, v.Tp.Abierto, 1387, v.Tp.Destino, v.Tp.Aparece)

Y al mismo tiempo empezaba otro "cronómetro" de 3 minutos:
Cerrado = 3 * 60 * 1000, -- Minutos que tardará en cerrarse. (X * 60 * 1000)
Para que se cerrara el portal abierto anteriormente:
addEvent (removeTp, v.Tp.Cerrado, pos)

Por lo que el portal solamente permanecería abierto 1 minuto y no 3...

Y por otro lado, que el valor de las variables anteriores "Abierto = 2 * 60 * 1000" & "Cerrado = 3 * 60 * 1000" en la función que se encargaba del tiempo X necesario para que no se pueda volver a accionar el script:
setGlobalStorageValue(cid, v.strEx, (os.time(t) + v.Tp.Abierto + v.Tp.Cerrado))
Hacían que no se puediera volver a accionar pasado muchísimo más tiempo que el expuesto.


Por lo que lo cambié por:
Abierto = 2, -- Minutos que tardará en abrirse. (2 minutos)
Cerrado = 5, -- Minutos que tardará en cerrarse: (3 minutos), más los Minutos que hayas puesto en la anterior línea: (2 minutos), dando lugar a: (5 minutos).
setGlobalStorageValue(cid, v.strEx, (os.time(t) + v.Tp.Cerrado))
Así, si lo dejas como está se efectuará tal y como lo pedíste:
El portal se abrirá pasado 2 minutos y se cerrará pasado 3 minutos, y no se podrá volver a accionar el objeto hasta que hayan pasado los 5 minutos que suman cada uno.

Arreglado



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#5 Re: Usar x item y aparescan montruos el Miér Mayo 07, 2014 6:12 pm

newlegacy


Aprendiz
jeje gracias por tu ayudarme mucho men lo probare en un rato es que ando inventando un lugar parecido a la warzone mil gracias de nuevo.

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.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .