TILE_SNOW = 670 TILE_FOOTPRINT_I = 6594 TILE_FOOTPRINT_II = 6598 function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(isPlayerGhost(cid)) then return true end if(item.itemid == TILE_SNOW) then doTransformItem(item.uid, TILE_FOOTPRINT_I) doDecayItem(item.uid) addEvent(doTransformItem, 36000, item.uid, TILE_SNOW) elseif(item.itemid == TILE_FOOTPRINT_I) then doTransformItem(item.uid, TILE_FOOTPRINT_II) doDecayItem(item.uid) addEvent(doTransformItem, 36000, item.uid, TILE_SNOW) else doTransformItem(item.uid, TILE_FOOTPRINT_I) addEvent(doTransformItem, 36000, item.uid, TILE_SNOW) end return true end
info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have

info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

Tenho esse script aqui que é mais simples e funciona.
function onStepOut(cid, item, position, fromPosition)
addEvent(transformBack, 10000, {oldItemID = item.itemid, _position = position})
if item.itemid == 670 then
doTransformItem(item.uid, 6594)
else
doTransformItem(item.uid, item.itemid + 15)
end
return true
end
function transformBack(parameters)
parameters._position.stackpos =
doTransformItem(getThingfromPos(parameters._position).uid, parameters.oldItemID)
return true
end
Galera, os dois deram erros..
O do Luck tá dando esse erro:
http://imageshack.us/f/811/erro1l.jpg/
O do do caotic:
http://imageshack.us/f/835/erro2n.jpg/
EDIT 1:
O meu movements.xml tá assim:
<movevent type="StepIn" itemid="670" event="script" value="snow.lua"/> <movevent type="StepIn" itemid="6580-6595" event="script" value="snow.lua"/>
EDIT 2:
Alguém pode me ajudar?
Editado Novembro 8 por coriel
o do caotic dá erro, porque ele usa o uid de um item num addevent, unique ids de itens não são estáticos.
o luck faz com que o item se transforma em outro completamente diferente usando essa linha:
doTransformItem(item.uid, item.itemid + 15)
o certo seria + 4
Editei o script original, vê se funciona:
TILE_SNOW = 670 TILE_FOOTPRINT_I = 6594 TILE_FOOTPRINT_II = 6598 function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(isPlayerGhost(cid)) then return true end if(item.itemid == TILE_SNOW) then doTransformItem(item.uid, TILE_FOOTPRINT_I) elseif(item.itemid == TILE_FOOTPRINT_I) then doTransformItem(item.uid, TILE_FOOTPRINT_II) else doTransformItem(item.uid, TILE_FOOTPRINT_I) end doDecayItem(item.uid) return true end
Editado Novembro 8 por brun123
Fala cara, o script que você postou alí no tópico ficou perfeito, não apresentou nenhum erro no servidor e nem no distro. Só que tipo, tem um único probleminha.. Vamos lá, se eu pisar em um chão de snow cujo id é 670, esse chão vai se transformar em duas pegadas logicamente, um tempinho depois, essas pegadas vão sair e voltar ao id normal, no caso, 670. Até aqui, nenhum problema.. Mas, se eu pisar em um chão de snow cujo id é 6588 por exemplo, também vai se transformar em duas pegadas, porem, um tempinho depois, ele se transforma em 670 e não 6588, no caso. Pode resolver isso? Vou postar a parte de snow do meu movements.xml e o script que você me passou. Grato!
movements.xml
<movevent type="StepIn" itemid="670" event="script" value="snow.lua"/> <movevent type="StepIn" itemid="6580-6595" event="script" value="snow.lua"/>
snow.xml
TILE_SNOW = 670 TILE_FOOTPRINT_I = 6594 TILE_FOOTPRINT_II = 6598 function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(isPlayerGhost(cid)) then return true end if(item.itemid == TILE_SNOW) then doTransformItem(item.uid, TILE_FOOTPRINT_I) elseif(item.itemid == TILE_FOOTPRINT_I) then doTransformItem(item.uid, TILE_FOOTPRINT_II) else doTransformItem(item.uid, TILE_FOOTPRINT_I) end doDecayItem(item.uid) return true end
EDIT: Se alguém puder me ajudar..
Editado Novembro 8 por coriel





info
Grupo: Artesão
Registrado: 02/03/07
Posts: 119
Reputação: +1
Gênero: Masculino
Fala galera, acho que o meu script de snow está bugado. Quando estou em uma cidade de gelo, piso no chão de neve e o chão de neve se transforma em duas pegadas.. Só que tipo, se eu andar alguns sqms pelo chão de neve, alguns voltam ao normal e outros não, ou seja, alguns continuam com as duas pegadas.. O que quero é que quando o player pisasse em qualquer sqm de neve, esse sqm voltaria a ser neve normalmente depois. O que faço para arrumar isso? Sei que o tempo é arrumado nos items.xml.. Mas e o snow.lua? Vou postar aqui o script do snow.lua. Grato! Servidor 9.70.Valendo REP+.
data\movements\scripts\snow.lua
Editado Novembro 8 por coriel