BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Remover item al pisar un sqm

Remover item al pisar un sqm

#1 Remover item al pisar un sqm el Sáb Ene 17, 2015 11:44 pm

Healersitito


Novato
necesito un script para que cuando 3 player se paren en 3 sqm se quite esa piedra. [Tienes que estar registrado y conectado para ver esa imagen]

tambien necesito uno parecido pero que en vez de que se necesiten 3 player para remover un item, se necesite solo 1 player

#2 Re: Remover item al pisar un sqm el Lun Ene 19, 2015 9:23 am

Belerofonte


Administrador
Para 3 jugadores necesarios:
Servidor/Data/Movements/... Movements.xml
<movevent type="StepIn" uniqueid="5945;5946;5947" event="script" value="tile_roca3.lua"/>
<movevent type="StepOut" uniqueid="5945;5946;5947" event="script" value="tile_roca3.lua"/>
Ahí pones los UniqueID que también pondrás con el Remeres en cada sqm.

Servidor/Data/Movements/Scripts/... tile_roca3.lua
Código:
 local c = {
    rockID = 1353, -- ID de la roca.
    playerPos = {5945, 5946, 5947}, -- Mismos UniqueID de cada sqm que hayas puesto también en la línea del Movements.xml
    rockPos = {x = 1022, y = 1060, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
    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),
    player3 = isPlayer(getTopCreature(getThingPos(c.playerPos[3])).uid),
  }

    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2 and p.player3) or (item.uid == c.playerPos[2] and p.player1 and p.player3) or (item.uid == c.playerPos[3] and p.player2 and p.player1) then
          local Rock = getTileItemById(c.rockPos, c.rockID).uid
            if Rock > 0 then
                doRemoveItem(Rock, 1)
                for e = 1, #c.quitEffect do
                    doSendMagicEffect (c.rockPos, c.quitEffect[e])
                end
            end
        end
    end
  return true
end

function onStepOut(cid, item, position, fromPos, toPos)
  local p = {
    player1 = isPlayer(getTopCreature(getThingPos(c.playerPos[1])).uid),
    player2 = isPlayer(getTopCreature(getThingPos(c.playerPos[2])).uid),
    player3 = isPlayer(getTopCreature(getThingPos(c.playerPos[3])).uid),
  }

    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2 and p.player3) or (item.uid == c.playerPos[2] and p.player1 and p.player3) or (item.uid == c.playerPos[3] and p.player2 and p.player1) then
          local Rock = getTileItemById(c.rockPos, c.rockID).uid
            if Rock < 1 then
                doCreateItem(c.rockID, 1, c.rockPos)
                for e = 1, #c.creaEffect do
                    doSendMagicEffect (c.rockPos, c.creaEffect[e])
                end
            end
        end
    end
  return true
end

Zona a editar:
 local c = {
   rockID = 1353, -- ID de la roca.
   playerPos = {5945, 5946, 5947}, -- Mismos UniqueID de cada sqm que hayas puesto también en la línea del Movements.xml
   rockPos = {x = 1022, y = 1060, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
   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.
 }





Para 1 jugador necesario:
Servidor/Data/Movements/... Movements.xml
<movevent type="StepIn" uniqueid="5948" event="script" value="tile_roca1.lua"/>
<movevent type="StepOut" uniqueid="5948" event="script" value="tile_roca1.lua"/>

Ahí ha de ir el UniqueID que gustes (que no estés usando ya en otro script), que es el que también has de poner al sqm con el Remeres.

Servidor/Data/Movements/Scripts... tile_roca1.lua
Código:
 local c = {
    rockID = 1353, -- ID de la roca.
    rockPos = {x = 1021, y = 1055, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
    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, fromPos, toPos)
  local rockUID = getTileItemById(c.rockPos, c.rockID)
    if isPlayer(cid) and rockUID.itemid == c.rockID then
        doRemoveItem(rockUID.uid)
        for e = 1, #c.creaEffect do
            doSendMagicEffect (c.rockPos, c.quitEffect[e])
        end
    end
  return true
end

function onStepOut(cid, item, fromPos, toPos)
    if isPlayer(cid) then
        doCreateItem (c.rockID, 1, c.rockPos)
        for e = 1, #c.quitEffect do
            doSendMagicEffect (c.rockPos, c.quitEffect[e])
        end
    end
  return true
end

Zona a editar:
 local c = {
   rockID = 1353, -- ID de la roca.
   rockPos = {x = 1021, y = 1055, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
   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.
 }



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: Remover item al pisar un sqm el Lun Ene 19, 2015 3:48 pm

Healersitito


Novato
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Para 3 jugadores necesarios:
Servidor/Data/Movements/... Movements.xml
<movevent type="StepIn" uniqueid="5945;5946;5947" event="script" value="tile_roca3.lua"/>
<movevent type="StepOut" uniqueid="5945;5946;5947" event="script" value="tile_roca3.lua"/>
Ahí pones los UniqueID que también pondrás con el Remeres en cada sqm.

Servidor/Data/Movements/Scripts/... tile_roca3.lua
Código:
 local c = {
    rockID = 1353, -- ID de la roca.
    playerPos = {5945, 5946, 5947}, -- Mismos UniqueID de cada sqm que hayas puesto también en la línea del Movements.xml
    rockPos = {x = 1022, y = 1060, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
    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),
    player3 = isPlayer(getTopCreature(getThingPos(c.playerPos[3])).uid),
  }

    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2 and p.player3) or (item.uid == c.playerPos[2] and p.player1 and p.player3) or (item.uid == c.playerPos[3] and p.player2 and p.player1) then
          local Rock = getTileItemById(c.rockPos, c.rockID).uid
            if Rock > 0 then
                doRemoveItem(Rock, 1)
                for e = 1, #c.quitEffect do
                    doSendMagicEffect (c.rockPos, c.quitEffect[e])
                end
            end
        end
    end
  return true
end

function onStepOut(cid, item, position, fromPos, toPos)
  local p = {
    player1 = isPlayer(getTopCreature(getThingPos(c.playerPos[1])).uid),
    player2 = isPlayer(getTopCreature(getThingPos(c.playerPos[2])).uid),
    player3 = isPlayer(getTopCreature(getThingPos(c.playerPos[3])).uid),
  }

    if isPlayer(cid) then
        if (item.uid == c.playerPos[1] and p.player2 and p.player3) or (item.uid == c.playerPos[2] and p.player1 and p.player3) or (item.uid == c.playerPos[3] and p.player2 and p.player1) then
          local Rock = getTileItemById(c.rockPos, c.rockID).uid
            if Rock < 1 then
                doCreateItem(c.rockID, 1, c.rockPos)
                for e = 1, #c.creaEffect do
                    doSendMagicEffect (c.rockPos, c.creaEffect[e])
                end
            end
        end
    end
  return true
end

Zona a editar:
 local c = {
   rockID = 1353, -- ID de la roca.
   playerPos = {5945, 5946, 5947}, -- Mismos UniqueID de cada sqm que hayas puesto también en la línea del Movements.xml
   rockPos = {x = 1022, y = 1060, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
   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.
 }





Para 1 jugador necesario:
Servidor/Data/Movements/... Movements.xml
<movevent type="StepIn" uniqueid="5948" event="script" value="tile_roca1.lua"/>
<movevent type="StepOut" uniqueid="5948" event="script" value="tile_roca1.lua"/>

Ahí ha de ir el UniqueID que gustes (que no estés usando ya en otro script), que es el que también has de poner al sqm con el Remeres.

Servidor/Data/Movements/Scripts... tile_roca1.lua
Código:
 local c = {
    rockID = 1353, -- ID de la roca.
    rockPos = {x = 1021, y = 1055, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
    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, fromPos, toPos)
  local rockUID = getTileItemById(c.rockPos, c.rockID)
    if isPlayer(cid) and rockUID.itemid == c.rockID then
        doRemoveItem(rockUID.uid)
        for e = 1, #c.creaEffect do
            doSendMagicEffect (c.rockPos, c.quitEffect[e])
        end
    end
  return true
end

function onStepOut(cid, item, fromPos, toPos)
    if isPlayer(cid) then
        doCreateItem (c.rockID, 1, c.rockPos)
        for e = 1, #c.quitEffect do
            doSendMagicEffect (c.rockPos, c.quitEffect[e])
        end
    end
  return true
end

Zona a editar:
 local c = {
   rockID = 1353, -- ID de la roca.
   rockPos = {x = 1021, y = 1055, z = 7, stackpos = 1}, -- Coordenada del lugar donde se hallará la roca.
   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.
 }

gracias!, oye por donde te puedo contactar?, no le entendi mucho a tu explicacion, copie y pegue todo exactamente como lo tenias tu y no me sirve :s

#4 Re: Remover item al pisar un sqm el Lun Ene 19, 2015 4:02 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:gracias!, oye por donde te puedo contactar?, no le entendi mucho a tu explicacion, copie y pegue todo exactamente como lo tenias tu y no me sirve :s
Te acabo de mandar un titan por privado



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: Remover item al pisar un sqm el Lun Feb 16, 2015 5:46 pm

Godz4t4n1c


Miembro
Eh we muy bueno pero necesito una que cuando pises el sqlm borre 3 stones en ves de 1 que borre 3
me puedes ayudar con eso gracias

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 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 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 .