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)
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

Irei aguardar, obrigado.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)
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

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
info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester

resolvido.
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

Tópico Movido
Este tópico foi movido de "OTServ → Scripting → Suporte Scripting"
para "OTServ → Scripting → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".



info
Grupo: Visconde
Registrado: 01/07/15
Posts: 416
Reputação: +206
Gênero: Masculino
Char no Tibia: Bluester
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 Fevereiro 22 por Bluester