BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Piso que remueva paredes.

Piso que remueva paredes.

#1 Piso que remueva paredes. el Sáb Nov 15, 2014 1:32 am

Demencia


Novato
Bueno gente de blacktibia vuelvo a pasar por aqui, por un script "movement" de un piso.

[Tienes que estar registrado y conectado para ver esa imagen]

Cuando los players "me refiero a dos" estén en los respectivos pisos, se remuevan 3 paredes.
[Tienes que estar registrado y conectado para ver esa imagen]

les agradecería si tienen el script me lo pasaran, gracias saludos.

#2 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 5:14 am

Gitanino


Estudiante
Tt tienes que mirar un poco, hace dos días se publico algo parecido. Te dejo aquí el link: [Tienes que estar registrado y conectado para ver este vínculo]

Tu en vez de poner la id de la roca pones la id de la pared donde dice esto y ya esta.
rockID = 1304, -- ID de la roca.

#3 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 9:34 am

ander.oviedo


Miembro
explicate bien xd

#4 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 10:44 am

enrikito15


Miembro
es casi lo mismo de lo que pedi yo como dice @Gitanino
Data/Movement/... Movements.xml:
Código:
<movevent type="StepIn" uniqueid="5945;5946" event="script" value="tile_pared.lua"/>
Data/Movements/Scripts/... tile_pared.lua:
Código:
local c = {
    delay = 30, -- Segundos que transcurrirán antes de volver a aparecer.
    rockID = 1304, -- ID de la pared
    playerPos = {5945, 5946}, -- Mismos UniqueID de ambos tiles que le hayas puesto a la línea del Movements.xml
    rockPos = {x = 990, y = 998, z = 7}, -- Coordenada del lugar donde se hallará la pared
    quitEffect = {CONST_ME_HITAREA, CONST_ME_POFF}, -- Efecto o Efectos Mágicos que aparecerán al removerse.
    creaEffect = {CONST_ME_GROUNDSHAKER, CONST_ME_STONES}, -- Efecto o Efectos Mágicos que aparecerán al resurgir.
  }
    local function relocate()
        doCreateItem(c.rockID, 1, c.rockPos)
        for i = 1, #c.quitEffect do
            doSendMagicEffect (c.rockPos, c.creaEffect[i])
        end
    end

function onStepIn(cid, item, position, fromPos, toPos)
  local Rock = getTileItemById(c.rockPos, c.rockID).uid
  local p = {
    player1 = getTopCreature(getThingPos(c.playerPos[1])).uid,
    player2 = getTopCreature(getThingPos(c.playerPos[2])).uid,
  }
    if Rock > 0 then
        if isPlayer(cid) then
            if (item.uid == c.playerPos[1] and p.player2 > 0) or (item.uid == c.playerPos[2] and p.player1 > 0) then
                doRemoveItem(Rock)
                for i = 1, #c.quitEffect do
                    doSendMagicEffect (c.rockPos, c.quitEffect[i])
                end
                addEvent(relocate, c.delay * 1000)
            end
        end
    end
  return true
end

El script es de @Belerofonte

#5 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 10:48 am

Belerofonte


Administrador
¿Todas las paredes removidas tendrán el mismo ID o distinto?

@Down, cambiar más líneas...



Última edición por Belerofonte el Sáb Nov 15, 2014 11:36 am, editado 1 vez



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]

#6 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 11:33 am

enrikito15


Miembro
para que se removieran las 3 paredes(si fueran distintos ids) seria asi belero?
Código:
local c = {
    delay = 30, -- Segundos que transcurrirán antes de volver a aparecer.
    rockID = {1245, 4246, 1546}, -- IDs de la paredes
    playerPos = {5945, 5946}, -- Mismos UniqueID de ambos tiles que le hayas puesto a la línea del Movements.xml
    rockPos = {x = 990, y = 998, z = 7}, {x = 991, y = 998, z = 7}, {x = 992, y = 998, z = 7},  -- Coordenada del lugar donde se hallará la pared
    quitEffect = {CONST_ME_HITAREA, CONST_ME_POFF}, -- Efecto o Efectos Mágicos que aparecerán al removerse.
    creaEffect = {CONST_ME_GROUNDSHAKER, CONST_ME_STONES}, -- Efecto o Efectos Mágicos que aparecerán al resurgir.
  }
    local function relocate()
        doCreateItem(c.rockID, 3, c.rockPos)
        for i = 1, #c.quitEffect do
            doSendMagicEffect (c.rockPos, c.creaEffect[i])
        end
    end

function onStepIn(cid, item, position, fromPos, toPos)
  local Rock = getTileItemById(c.rockPos, c.rockID).uid
  local p = {
    player1 = getTopCreature(getThingPos(c.playerPos[1])).uid,
    player2 = getTopCreature(getThingPos(c.playerPos[2])).uid,
  }
    if Rock > 0 then
        if isPlayer(cid) then
            if (item.uid == c.playerPos[1] and p.player2 > 0) or (item.uid == c.playerPos[2] and p.player1 > 0) then
                doRemoveItem(Rock)
                for i = 1, #c.quitEffect do
                    doSendMagicEffect (c.rockPos, c.quitEffect[i])
                end
                addEvent(relocate, c.delay * 1000)
            end
        end
    end
  return true
end
Algo asi?

#7 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 1:06 pm

Demencia


Novato
Bueno ese script funciona pero yo lo que quiero es que cuando los players se quiten del tile creen las wall y cuando se pongan encima del tile se remuevan las wall y ese script es por tiempo, también es por diferentes ids y diferentes posiciones. si no es mucho pedir :c, saludos.

#8 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 1:18 pm

enrikito15


Miembro
Pues tu configuralo.
Donde dice delay = 30 <-- ponle 1  para que se pongan rápido las paredes
Donde dice rockid <--- ponle los ids de las paredes que quieres.
Donde dice playerspos <-- las pociones donde se pondrán los players para quitar las paredes.
Donde dice rockpos <--- posiciones de las paredes que se quitaran.

#9 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 1:28 pm

Demencia


Novato
El problema es que si colocas en 1 se crea la wall mas rápido, pero si todavía sigues en el tile se crea la wall y la idea mía es que si estas en el tile solamente se remueva y si no estas en el tile se cree la wall. creo que ese script sirve de base intentare hacer algo con ello.

#10 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 1:35 pm

enrikito15


Miembro
Aver intenta, le quite el tiempo.
Código:
local c = {
    rockID = {1245, 4246, 1546}, -- IDs de la paredes
    playerPos = {5945, 5946}, -- Mismos UniqueID de ambos tiles que le hayas puesto a la línea del Movements.xml
    rockPos = {x = 990, y = 998, z = 7}, {x = 991, y = 998, z = 7}, {x = 992, y = 998, z = 7},  -- Coordenada del lugar donde se hallará la pared
    quitEffect = {CONST_ME_HITAREA, CONST_ME_POFF}, -- Efecto o Efectos Mágicos que aparecerán al removerse.
    creaEffect = {CONST_ME_GROUNDSHAKER, CONST_ME_STONES}, -- Efecto o Efectos Mágicos que aparecerán al resurgir.
  }
    local function relocate()
        doCreateItem(c.rockID, 3, c.rockPos)
        for i = 1, #c.quitEffect do
            doSendMagicEffect (c.rockPos, c.creaEffect[i])
        end
    end

function onStepIn(cid, item, position, fromPos, toPos)
  local Rock = getTileItemById(c.rockPos, c.rockID).uid
  local p = {
    player1 = getTopCreature(getThingPos(c.playerPos[1])).uid,
    player2 = getTopCreature(getThingPos(c.playerPos[2])).uid,
  }
    if Rock > 0 then
        if isPlayer(cid) then
            if (item.uid == c.playerPos[1] and p.player2 > 0) or (item.uid == c.playerPos[2] and p.player1 > 0) then
                doRemoveItem(Rock)
                for i = 1, #c.quitEffect do
                    doSendMagicEffect (c.rockPos, c.quitEffect[i])
                end
        end
    end
  return true
end

#11 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 2:39 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Bueno ese script funciona pero yo lo que quiero es que cuando los players se quiten del tile creen las wall y cuando se pongan encima del tile se remuevan las wall y ese script es por tiempo, también es por diferentes ids y diferentes posiciones. si no es mucho pedir :c, saludos.
Ah vale es que en el post lo dijíste alrevés xD

[Tienes que estar registrado y conectado para ver este vínculo] escribió:Bueno gente de blacktibia vuelvo a pasar por aqui, por un script "movement" de un piso.

[Tienes que estar registrado y conectado para ver esa imagen]

Cuando los players "me refiero a dos" estén en los respectivos pisos, se remuevan 3 paredes.
[Tienes que estar registrado y conectado para ver esa imagen]

les agradecería si tienen el script me lo pasaran, gracias saludos.

Data/Movements/... Movements.xml:
<movevent type="StepIn" uniqueid="5945;5946" event="script" value="tile_roca.lua"/>
<movevent type="StepOut" uniqueid="5945;5946" event="script" value="tile_roca.lua"/>
Ésos o los uniqueid que gustes, son los de los pisos donde han de pisar los jugadores.

Data/Movements/Scripts/... tile_roca.lua:
Código:
 local c = {
    rockID = 1053, -- ID de la pared.
    playerPos = {5945, 5946}, -- Mismos UniqueID de ambos tiles que le hayas puesto a la línea del Movements.xml
    rockPos = {
      {x = 990, y = 996, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
      {x = 990, y = 997, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
      {x = 990, y = 998, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
    },
    quitEffect = {CONST_ME_HITAREA, CONST_ME_POFF}, -- Efecto o Efectos Mágicos que aparecerán al removerse.
    creaEffect = {CONST_ME_GROUNDSHAKER, CONST_ME_STONES}, -- Efecto o Efectos Mágicos que aparecerán al resurgir.
  }

function onStepIn(cid, item, position, fromPos, toPos)
  local p = {
    player1 = isPlayer(getTopCreature(getThingPos(c.playerPos[1])).uid),
    player2 = isPlayer(getTopCreature(getThingPos(c.playerPos[2])).uid),
  }
    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2) or (item.uid == c.playerPos[2] and p.player1) then
            for i = 1, #c.rockPos do
              local Rock = getTileItemById(c.rockPos[i], c.rockID).uid
                if Rock > 0 then
                    doRemoveItem(Rock, 1)
                    for e = 1, #c.quitEffect do
                        doSendMagicEffect (c.rockPos[i], c.quitEffect[e])
                    end
                end
            end
        end
    end
  return true
end

function onStepOut(cid, item, position, fromPos, toPos)
  local p = {
    player1 = getTopCreature(getThingPos(c.playerPos[1])).uid,
    player2 = getTopCreature(getThingPos(c.playerPos[2])).uid,
  }
    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2 > 0) or (item.uid == c.playerPos[2] and p.player1 > 0) then
            for i = 1, #c.rockPos do
              local Rock = getTileItemById(c.rockPos[i], c.rockID).uid
                if Rock < 1 then
                    doCreateItem(c.rockID, 1, c.rockPos[i])
                    for e = 1, #c.creaEffect do
                        doSendMagicEffect (c.rockPos[i], c.creaEffect[e])
                    end
                end
            end
        end
    end
  return true
end

Instrucción:
local c = {
rockID = 1053, -- ID de la pared.
playerPos = {5945, 5946}, -- Mismos UniqueID de ambos tiles que le hayas puesto a la línea del Movements.xml
rockPos = {
{x = 990, y = 996, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
{x = 990, y = 997, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
{x = 990, y = 998, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la pared.
},
quitEffect = {CONST_ME_HITAREA, CONST_ME_POFF}, -- Efecto o Efectos Mágicos que aparecerán al removerse.
creaEffect = {CONST_ME_GROUNDSHAKER, CONST_ME_STONES}, -- Efecto o Efectos Mágicos que aparecerán al resurgir.
}

PD: Para que no te funciona mal, en el remeres no le pongas ningún borde terrenal o cualquier otro objeto en el piso donde vayas a poner la pared a remover.



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]

#12 Re: Piso que remueva paredes. el Sáb Nov 15, 2014 2:51 pm

Demencia


Novato
Si xd me equivoque pero bueno igual gracias era lo que necesitaba.

#13 Re: Piso que remueva paredes. Hoy a las 3:54 am

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 .