Ir para conteúdo
  • 0

[RESOLVIDO][PEDIDO] Mover Item.


Bluester

Pergunta

Olá galera, hoje venho pedir um script meio complicado... Queria um script que ao usar um item com ID 14326 em outro item cujo ID seria 14267, o item com ID 14267 seria movido para esquerda ( esse item é uma porta ) e depois de movido, ficaria lá por 15 segundos e depois voltaria para posição antiga no mapa.

Agradeço pela atenção ! :)

@UP

Editado por Bluester
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0


 

function removeItem(pos, itemid)

local item = getTileItemById(pos, itemid)

if item.uid > 0 then

doRemoveItem(item.uid, 1)

end

end

 

function customMagicEffect(pos, itemid, duration, times)

n = times or 0

doCreateItem(itemid, 1, pos)

if duration ~= -1 then addEvent(removeItem, duration, pos, itemid) end

if n ~= 0 then addEvent(customMagicEffect, 350+duration, pos, itemid, duration, n-1) end

end

 

function getAllPos(pos, toPos)

local p = {}

for i=1, getDistanceBetween(pos, toPos) do

p = getPosByDir(pos, getDistanceBetween(pos, toPos))

pos = p

end

return p

end

 

function teleportItem(pos, itemid)

doRemoveItem(getTileItemById(pos, itemid).uid)

end

 

function customDistanceShoot(pos, toPos, itemid, speed, way, eff, times)

n = times or 0

x = way or 0

local effect = eff or CONST_ANI_NONE

 

if n == 0 then

doSendDistanceShoot(pos, toPos, effect)

local dir = getDirectionTo2(pos, toPos)

if x == 1 then dir = getDirectionTo(pos, toPos) end

pos = getPosByDir(pos, dir, 1)

doCreateItem(itemid, 1, pos)

local acx = dir > WEST and 2 or 1

addEvent(customDistanceShoot, (acx*speed), pos, toPos, itemid, x, speed, effect, n+1)

end

 

local item = getTileItemById(pos, itemid)

local d = getDistanceBetween(pos, toPos)

if item.uid > 0 and d > 0 and n ~= 0 then

local oldPos = Position(pos.x, pos.y, pos.z)

local dir = getDirectionTo2(pos, toPos)

if x == 1 then dir = getDirectionTo(pos, toPos) end

pos = getPosByDir(pos, dir, 1)

doCreateItem(itemid, 1, pos)

removeItem(oldPos, itemid)

local acx = dir > WEST and 2 or 1

addEvent(customDistanceShoot, (acx*speed), pos, toPos, itemid, speed, x, effect, n+1)

end

if d <= 0 then addEvent(removeItem, speed, pos, itemid) end

end

 

function doCreatureSpin(uid, spins, delay, dir, index)

clockwise = dir or 1

quantityOfSpins = index or 0

 

if quantityOfSpins == spins then return

elseif quantityOfSpins == 0 then makeCreatureImpossibleToMoveByTime(uid, delay*spins) end

 

look = getCreatureLookDirection(uid) < 3 and getCreatureLookDirection(uid) + clockwise or 0

doCreatureSetLookDirection(uid, look)

addEvent(doCreatureSpin, delay, uid, spins, delay, clockwise, quantityOfSpins+1)

return

end

 

function makeCreatureImpossibleToMoveByTime(uid, time)

doCreatureSetNoMove(uid, true)

addEvent(doCreatureSetNoMove, time, uid, false)

end

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...