Meu caro, os parâmetros da função doTransformItem são uid e itemid. No caso você deve trocar 4012 por um uid.
Oque seria este 4012?
Por WillOliveira, 03 de out. de 2013 em Scripts
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Meu caro, os parâmetros da função doTransformItem são uid e itemid. No caso você deve trocar 4012 por um uid.
Oque seria este 4012?
info
Grupo: Campones
Registrado: 16/09/12
Posts: 88
Reputação: +21

Esse 4012 é o uid '-' O problema é na função mesmo, eu fiz o mesmo script aqui mas coloquei pra transformar uma parede em vez de uma mesa e funcionou, ele só ta transformando paredes e tiles, outros tipos de item não transforma
Editado Outubro 3 por WillOliveira
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

tenta
function onUse(cid, item, fromPosition, itemEx, toPosition)
local function Voltar(pos)
return doTransformItem(getTileItemById(pos, 2255).uid, 1724)
end
if itemEx.uid == 4012 then
if getPlayerStorageValue(cid, 8999) >= 1 then
doPlayerSendTextMessage(cid, 22, "Você já fez essa quest.")
return true
end
doSendMagicEffect(toPosition, 2)
doTransformItem(itemEx.uid, 2255)
doCreateItem(2553, 1, fromPosition)
setPlayerStorageValue(cid, 8999, 1)
addEvent(Voltar, 180000, toPosition)
end
return true
end
info
Grupo: Campones
Registrado: 16/09/12
Posts: 88
Reputação: +21

@Vodkart Testei aqui e não funcionou
o problema é que essa linha do script não funciona:
doTransformItem(itemEx.uid, 2255)
Só funciona se o item for um tile ou uma parede
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Cara só me fala as coordenadas do item 4012
info
Grupo: Campones
Registrado: 16/09/12
Posts: 88
Reputação: +21

Já consegui arrumar
Querem que eu poste aqui?
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Claro, como você fez?
info
Grupo: Campones
Registrado: 16/09/12
Posts: 88
Reputação: +21

Ficou assim o script completo:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local function Voltar()
doRemoveItem(4018)
createdresser = doCreateItem(1724, 1, toPosition)
doItemSetAttribute(createdresser, "uid", 4018)
end
if itemEx.uid == 4018 then
if getPlayerStorageValue(cid, 9011) >= 1 then
doPlayerSendTextMessage(cid, 21, "Você já pegou sua pick.")
return true
end
local storage_value = math.random(1,6)
if getPlayerStorageValue(cid, 9010) >= storage_value then
doSendMagicEffect(toPosition, 2)
doRemoveItem(4018)
createtrash = doCreateItem(2255, 1, toPosition)
doItemSetAttribute(createtrash, "uid", 4018)
doCreateItem(2553, 1, toPosition)
doPlayerSetStorageValue(cid, 9011, 1)
addEvent(Voltar, 5000)
else
doSendMagicEffect(toPosition, 2)
doPlayerSetStorageValue(cid, 9010, getPlayerStorageValue(cid, 9010)+1)
end
else return true
end
return true
end
Eu fiz a function Voltar que também transforma e ainda seta um uid pro item que voltou.
Editado Outubro 5 por WillOliveira
info
Grupo: Campones
Registrado: 16/09/12
Posts: 88
Reputação: +21
Coloquei uniqueid 4012 no itemid 1724 pelo map editor e fiz o seguinte script:
Tag actions.xml:
Quando uso o itemid 7242 no item de uid 4012 o item não transforma. O itemid 2553 que coloquei pra ser criado e o effect que coloquei no script funcionam, mas a função doTransformItem não, por que será? Eu pesquisei na otland e alguns usuários de lá tem o mesmo problema, testei o script no TFS 0.3.6 pl1 e no TFS 0.4 A1 e não funcionou em nenhum dos dois. Eu li na otland que em algumas distros a função só transforma paredes e tiles, outros tipos de item não, mas testei a função até no TFS 0.4 A1 e não funcionou, por que será? Rep+ pra quem me ajudar.