Ir para conteúdo
  • 0

[RESOLVIDO][PEDIDO] Mover Item.


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
https://xtibia.com/forum/topic/239567-resolvidopedido-mover-item/
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
https://xtibia.com/forum/topic/239567-resolvidopedido-mover-item/#findComment-1686685
Compartilhar em outros sites

  • 0

Ou, não estou em casa mas tenho 2 funções de movimentação de itens pra 0.3 e 4. Posto aqui depois. (doSendCustomMagicEffect e doSendCustomDistanceShoot)

Irei aguardar, obrigado.
Link para o comentário
https://xtibia.com/forum/topic/239567-resolvidopedido-mover-item/#findComment-1686661
Compartilhar em outros sites

  • 0

Tópico Movido
Este tópico foi movido de "OTServScriptingSuporte Scripting"
para "OTServScriptingSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".

 

 

Link para o comentário
https://xtibia.com/forum/topic/239567-resolvidopedido-mover-item/#findComment-1686719
Compartilhar em outros sites

×
×
  • Criar Novo...